Laravel 4 で e コマース アプリケーションを開発していますが、データベース設計の問題を解決するためのアドバイスが必要です。
問題:
私のクライアントは、複数のバリエーション/オプションを持つ製品を持っています。例えば:
Product1 = Apple Iphone 5
カラーオプション:ブラック
Option1 黒の場合: 16GB
オプション 1 の在庫 : 15
オプション 1 の販売価格 : $900
Option2 黒の場合: 32GB
Option2 の在庫 : 32
オプション 2 の販売価格: $1.200
Option3 黒の場合: 128GB
オプション 3 の在庫 : 24
オプション 3 の販売価格 : $1.700
カラーオプション:ホワイト
Option1 ホワイトの場合: 32GB
オプション 1 の在庫 : 9
オプション 1 の販売価格 : $930
Option2 ホワイトの場合: 64GB
オプション 2 の在庫 : 12
オプション 2 の販売価格: $1.270
Product2 = Motorola Xoom 9868AB ケース
素材オプション : レザー
Option1 革: グレー
オプション 1 の在庫 : 90
オプション 1 の販売価格 : $12
Option2 レザー: ピンク
オプション 2 の在庫 : 12
オプション 2 の販売価格 : $12.70
材料オプション: ハードシェル
Option1 ハードシェル用: ブラック
オプション 1 の在庫 : 51
オプション 1 の販売価格: $32.90
私のアプローチ:
上記のように、オプション、在庫、価格の種類が異なる多くの製品があります。私は belongsToMany() で次のようなことを試しました:
表: 製品
id
name
created_at
updated_at
表:バリエーション
id
title
parent
created_at
updated_at
表:商品バリエーション
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() 製品とバリエーションがあります。問題へのアプローチはどのようになりますか?