ショップカートの制作経験者のみご解答をお願いします。

ショップシステムの商品のオプション情報の管理方法に悩んでいます。
①データベース+PHPを使用。
②商品にオプション。サイズ、色…。(0〜無制限。2次元に限定しない)
③各オプションに選択肢。サイズ:S,L,M…。(1〜無制限)
④オプションの組み合わせ毎に在庫、価格情報などを持つ
⑤運用中に既存の商品のオプションやその選択肢を、追加・削除・変更できる
悩み所は、④と⑤の要求をどうクリアするかであり、商品ごとに異なる多次元のオプション情報の格納方法です。
商品テーブルのサブテーブルとして
「次元数×選択肢数」個のレコードのオプションテーブルに価格・在庫を格納するか、
$多次元配列[’サイズの選択肢’][’色の選択肢’]=array(’price’=>xxx, ’stock’=>xxx)みたいな構造を
シリアライズして格納するかなど。
注文履歴テーブルとのリレーションも考慮して総合的にいい方法が思いつきません。
オプションが異なれば別の商品とする方法は考えていません

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/08/02 16:05:53
  • 終了:--

回答(2件)

id:ito-yu No.1

ito-yu回答回数323ベストアンサー獲得回数142005/07/26 22:22:22

ポイント40pt

http://php.net/

PHP: Hypertext Preprocessor

商品テーブル(*商品ID、*オプション、在庫管理ID)、在庫管理テーブル(*在庫管理ID、価格、在庫)。

商品ID、在庫管理IDはシーケンス値。

オプションカラムは、多次元情報をシリアライズして格納。とかかなぁ。

ただ、オプションの次元のMAX値を予測できるなら、その最大数のオプションカラムを持つ方がいいような気がしますね。

id:kyoko55

> ただ、オプションの次元のMAX値を予測できるなら、その最大数のオプションカラムを持つ方がいいような気がしますね。

おっしゃるとおりですね。無制限などと柔軟にする程、難しくなります。在庫を表示させる場合でも、3次元以上だと縦×横での一覧表示が容易でなくなりますし。

なので、オプションは2種類までとし、⑥の要求も満たそうと思えばきりがないので、抜きで考えたいと思います。

他に定石みたいな設計はありますでしょうか。

2005/07/28 10:58:59
id:nasatomina No.2

nasatomina回答回数11ベストアンサー獲得回数02005/08/02 19:35:50

ポイント40pt

http://www.hatena.ne.jp/1122361553#

人力検索はてな - ショップカートの制作経験者のみご解答をお願いします。 ショップシステムの商品のオプション情報の管理方法に悩んでいます。 ①データベース+PHPを使用。 ②商品にオ..

私が以前に開発した方法で説明します。

DBテーブルは、商品情報と、在庫情報の2つ用意します。

商品情報のなかに、サイズとカラーの2つのフィールドをtinytestで作成します。

サイズのフィールドには「S,M,L」のように、カラーのフィールドには「ブラッグ,ホワイト,レッド」というように、CSVのような構造で登録します。

在庫情報のテーブルには、在庫ID、商品ID(商品情報とのリレーション)、サイズ、カラー、在庫数、この在庫を使用するしないのフラグのフィールドを作ります。

在庫情報のサイズやカラーは、商品情報に登録したサイズやカラーからのみから選択できるようにしました。


この方法なら、注文履歴テーブルにも、商品IDと在庫IDを保存すれば済むのではと思います。


ただし、実際にはその商品を削除してしまう場合もあるので、商品名やサイズ、カラーなどは文字列データとして、注文履歴に保存しておいた方が使いやすいと思います。

いかがでしょうか?

id:kyoko55

> 商品名やサイズ、カラーなどは文字列データとして、注文履歴に保存しておいた方が使いやすいと思います

同感です。本来重複データを避けるのがDBの醍醐味かもわかりませんが、価格なども変わる恐れがあるので、履歴テーブルには多くのフィールドの中身をベタに保存しようと思います。

ご意見を参考にして、なんとか出来そうなので、皆さんありがとうございました。

2005/08/05 10:57:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません