我使用Laravel 4开发了一个电子商务应用程序,并且需要一个建议来解决我的数据库设计问题。基于laravel 4的电子商务应用程序的关系数据库设计建议
问题:
我的客户具有多种变化/期权产品。例如:
产品1 =苹果iPhone 5
颜色选择:黑色
-
选项一黑:16GB
股票的选项1:15
个销售价格为选项1:$ 900
选项2黑色:32GB
股票的选项2:32
销售价格为选项2:$ 1.200
2选项黑色:128GB
Stock for Op tion3:24
销售价格为2选项:$ 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对于硬壳:对于选项一黑
库存: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()产品和变体。你将如何解决这个问题?
为什么不把每个产品的变体作为自己的产品?即产品1是Iphone5白色,产品2是Iphone黑色等 – Laurence
它确实非常老派的方式。因为管理商店真的很难。前端和后端。让我们想象一下,作为T恤店,你是一个想买阿迪达斯345三色黑色和XL尺码的顾客。导航,发现产品就像一场噩梦...... –
请参阅[MySQL购物车结构](http://stackoverflow.com/a/10398545)? – eggyal