在 Laravel Eloquent ORM 中存储元组数组

我对 Laravel 相当陌生,并且对他们雄辩的模型非常感兴趣。我正在开展一个小型实践项目,需要有关如何最好地存储一些数据的建议。

我想在表中存储小狗的体重和测量体重的日期(最好以元组或 json 格式)。我想稍后使用这些数据来使用 Vue 创建图表,以便创建描述随时间增长的图表和图形。最好的方法是什么?

我想象在模型迁移中会有某种$table->integer('weight'), $table->timestamp('weight-measurement-date')或可能的情况$table->json('weight-data'),但我仍然是新手,不熟悉最佳实践。当然,数据库表需要存储数据而不会覆盖或删除以前的条目。任何帮助将非常感激。



冉冉说
浏览 90回答 1
1回答

HUWWW

我将使用一个简单的one-to-many关系,因此您将有一个puppies表和一个measurements表,其中measurements表保存发生的所有不同测量。这将允许您为特定的小狗添加任意数量的测量值。我选择measured_at代替weighed_at小狗称重的日期,因为也许您会在测量表中添加一个新列(例如身高),所以我认为使用代替是有意义的,因为您可能不measured_at这样weighed_at做想要多个测量日期。要开始使用,您可以使用以下命令:php artisan make:migration create_puppies_tablephp artisan make:migration create_measurements_table然后将以下内容添加到您的迁移中。幼犬迁徙:Schema::create('puppies', function (Blueprint $table) {    $table->id();    $table->timestamps();});测量迁移:Schema::create('measurements', function (Blueprint $table) {    $table->id();    $table->foreignId('puppy_id')->constrained();    $table->timestamp('measured_at');    $table->timestamps();});然后,您将需要两个模型Puppy,并且Measurement可以在其中定义关系方法:小狗模型:public function measurements(){    return $this->hasMany('App\Measurement');}测量模型:public function puppy(){    return $this->belongsTo('App\Puppy');}附:您唯一需要考虑的是如何存储权重,可能是 a ,decimal也可能是 an integer,如果您将其存储为整数,则每次检索/存储在数据库中时都必须将其转换。
打开App,查看更多内容
随时随地看视频慕课网APP