人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: kyoko55
●カテゴリ:コンピュータ
✍キーワード:オプション カート クリア サイズ システム
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ito-yu
●40ポイント

http://php.net/

PHP: Hypertext Preprocessor

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

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

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

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

◎質問者からの返答

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

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

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

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


2 ● nasatomina
●40ポイント

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

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

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

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

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

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

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

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


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


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

いかがでしょうか?

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ