1 回答
TA贡献1874条经验 获得超12个赞
我将使用一个简单的one-to-many
关系,因此您将有一个puppies
表和一个measurements
表,其中measurements
表保存发生的所有不同测量。
这将允许您为特定的小狗添加任意数量的测量值。
我选择measured_at代替weighed_at小狗称重的日期,因为也许您会在测量表中添加一个新列(例如身高),所以我认为使用代替是有意义的,因为您可能不measured_at这样weighed_at做想要多个测量日期。
要开始使用,您可以使用以下命令:
php artisan make:migration create_puppies_table
php 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
,如果您将其存储为整数,则每次检索/存储在数据库中时都必须将其转换。
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报