我使用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