製品データベースの設計に関してどの方向に向かうべきか、またそこからデータを保存/取得するための最良の方法についてのアドバイスを探しています。私がぶつかっている障害は、製品が持つ可能性のあるさまざまな (有効な) オプションをどのように最もよく表現するかということです。
基本的な構造は次のとおりです (実際のテーブル定義ではありません)。
PRODUCT_TABLE {
ID(int),
NAME(varchar),
AVAILABLEOPTIONS(varchar),
etc...
}
COLOROPTIONS_TABLE {
ID(int),
COLORNAME(varchare),
etc...
}
BODYOPTIONS_TABLE {
ID,
BODYNAME,
etc...
}
AVAILABLEOPTIONS フィールドに値を格納して、OPTIONS テーブルと、製品が利用可能なテーブル内の ID を指定できるようにする最善の方法は何でしょうか。特定のオプション表)
私は(主にこの素晴らしいサイトで)たくさんの調査を行い、JSON、シリアライズ値、多次元配列などを見てきましたが、最善の方法はわかりません。
最終的に、AVAILABLEOPTIONS 値は、製品ページにオプションを表示するために使用されるか、ユーザーが有効な製品コードを生成するためのフォームを作成するために使用されます。また、管理者が DB に格納するための availableoptions 値を生成できるようにする入力フォームをセットアップしようとしています。
ヒントや考えは大歓迎です!
これがこの更新を配置するのに適切な場所かどうかはわかりませんが、ここに行きます。
さらに調査を行ったところ、単一のフィールドに複数の値を格納することは明確に禁止されているようです。EAV モデルが私のニーズに合っているかどうかもわかりません。しかし、私が持っているデータベース要件を正規化することになると、まだ理解できているかどうかわかりません。私はこれを思いついた:
画像はこちら: http://dev.aqualux.com.au/images/1.png (私はここに新しすぎるため、編集で画像を投稿できません...)
オレンジ色のテーブルの pid/oid は外部キーです。私が把握していない問題は、特定の製品に特定のタイプの複数のオプションがあるか、まったくないということです....
ありがとう