我用 Laravel 4 开发了一个电子商务应用程序,需要一个建议来解决我的数据库设计问题。
问题:
我的客户拥有具有多种变体/选项的产品。例如:
产品 1 = 苹果 iPhone 5
颜色选项:黑色
选项 1 黑色:16GB
选项 1 的库存:15
选项 1 的售价:900 美元
选项 2 黑色:32GB
选项 2 的库存:32
选项 2 的销售价格:1.200 美元
选项 3 黑色:128GB
选项 3 的库存:24
选项 3 的销售价格:1.700 美元
颜色选项:白色
白色选项 1:32GB
选项 1 的库存:9
选项 1 的售价:930 美元
选项 2 白色:64GB
选项 2 的库存:12
选项 2 的售价:1.270 美元
产品 2 = 摩托罗拉 Xoom 9868AB机箱
材料选项:皮革
皮革选项 1:灰色
选项 1 的库存:90
选项 1 的售价:12 美元
皮革选项2:粉红色
选项 2 的库存:12
选项 2 的售价:12.70 美元
材料选项:硬壳
硬壳选项 1:黑色
选项 1 的库存:51
选项 1 的销售价格:32.90 美元
我的做法:
正如您在上面看到的,有许多产品具有不同类型的期权、股票、价格。我已经尝试过以下使用 belongsToMany() 的方法:
表:产品
id
name
created_at
updated_at
表:变化
id
title
parent
created_at
updated_at
表:product_variation
id
products_id
variations_id
stock
purchase_price
sales_price
created_at
updated_at
产品型号:
<?php
class Products extends Eloquent {
protected $table = 'products';
protected $fillable = array('name');
public function variations() {
return $this->belongsToMany('Variations','product_variation')
->withPivot('purchase_price', 'stock', 'sales_price')
->withTimestamps();
}
}
订单模型应该如何?订单将 hasMany() 产品和变体。你将如何解决这个问题?