我有一个发票模型,我希望它有'n'的产品在它,所以在我的发票模型,我把一个关系有很多像下面
public function products(){
return $this->hasMany('App\Product','id','product_id');
}
所以在invoice数据库中,我为产品创建了5个字段,为每个产品创建了一个Quantity
$table->increments('id');
$table->text('title');
$table->longText('description');
$table->integer('client_id');
$table->integer('product_id1');
$table->integer('product_quantity1');
$table->integer('product_id2')->nullable();
$table->integer('product_quantity2')->nullable();
$table->integer('product_id3')->nullable();
$table->integer('product_quantity3')->nullable();
$table->integer('product_id4')->nullable();
$table->integer('product_quantity4')->nullable();
$table->integer('product_id5')->nullable();
$table->integer('product_quantity5')->nullable();
我想知道这样做是正确的方法还是我应该做一个包含产品id和发票id的表格来将它们结合起来???如果我要做一个新的表格,我应该如何设置关系?谢谢
1条答案
按热度按时间pokxtpni1#
这看起来类似于发票和产品之间的多对多方法。添加一个连接表(invoice\u products),连接invoice和products,表应该有
invoice_id
,product_id
,还具有的透视属性quantity
对于每种产品,如对于多对多,您可以在模型中添加定义,如