ホームページ >バックエンド開発 >PHPチュートリアル >ニーズに応じて mysql テーブルを設計する
みなさんこんにちは、まず最初に、この質問を閲覧していただきありがとうございます
要件について話させてください: モール プロジェクトの商品の属性。たとえば:
服には色とサイズの 2 つの属性があります。私のアイデアは記録することです。別の表にあります さまざまな属性の価格と在庫
例:
黒 - サイズ M - 70 元 - 35 個
黒 - サイズ L - 73 元 - 32 個
白 - サイズ L - 73 元 - 30 個
これテーブルはこのように設計されていますが、ここで問題が発生します。たとえば、携帯電話には、色、メモリ、通信事業者 (未契約、チャイナモバイル、チャイナユニコム、テレコム) などのいくつかの属性があります。
それでも次の方法に従う場合。上の服を見ると、余分な列があることが明らかです。それは
白 - 32G - 携帯電話契約 - 20 元 - 10 台
白 - 32G - チャイナユニコム契約電話 - 30 元 - 50 台
ゴールド - 32G -通信契約電話 - 10元 - 40台
これらの属性情報をすべてシリアル化して保存するのは良いのですが、Huawei 32G携帯契約の携帯電話を検索したいときに面倒なようです。何か良いアイデアがあれば提供していただきたいのですが、ありがとうございます。とても感謝しています
PS: ECSHOP のデザインを見たところ、商品には基本価格があり、その価格は基本価格に加算または減算されますが、私はこのアプローチにはあまり乗り気ではないようです。商品を追加するときに少し面倒
みなさんこんにちは、まず最初に、この質問を閲覧していただきありがとうございます
要件について話させてください: モール プロジェクトの商品の属性。たとえば:
服には色とサイズの 2 つの属性があります。私のアイデアは記録することです。別の表にあります さまざまな属性の価格と在庫
例:
黒 - サイズ M - 70 元 - 35 個
黒 - サイズ L - 73 元 - 32 個
白 - サイズ L - 73 元 - 30 個
これテーブルはこのように設計されていますが、ここで問題が発生します。たとえば、携帯電話には、色、メモリ、オペレータ (未契約、チャイナモバイル、チャイナユニコム、テレコム) などのいくつかの属性があります
それでも次の方法に従う場合上の服を見ると、もう 1 つの列が必要であることは明らかです。それは
白 - 32G - 携帯契約電話 - 20 元 - 10 台
白 - 32G - チャイナユニコム契約電話 - 30 元 - 50 台
ゴールド - 32G -通信契約電話 - 10元 - 40台
これらの属性情報がすべてシリアル化されて保存されていれば問題ありませんが、Huawei 32G 携帯契約の携帯電話を検索するときに面倒なようです。何か良いアイデアがあれば提供していただきたいのですが、ありがとうございます。とても感謝しています
PS: ECSHOP のデザインを見たところ、商品には基本価格があり、その価格は基本価格に加算または減算されますが、私はこのアプローチにはあまり乗り気ではないようです。商品を追加するときに少し面倒
現在の質問は他の人が尋ねたものであると言えます。あなたの質問について、私の回答をパラメータ化できます。
https://segmentfault.com/q/1010000005347571/a-1020000005347916
次のようにテーブルを設計できます。 :
商品一覧
製品ID | 商品名 |
---|---|
1 | iPhone |
2 | キュウリ |
製品属性テーブル
製品ID | 仕様 | カラー | 価格 |
---|---|---|---|
1 | 16g | ホワイト | 4999 |
1 | 32g | ホワイト | 5499 |
2 | なし | なし | 1 |
現在の練習プロジェクトには、このデザインが最適です
ただし、このデザインは、属性が多数ある場合、属性フィールドを追加する必要があり、一部の属性は商品で使用できない場合があります。この属性は無駄を引き起こし、属性テーブルが変更されずに展開されます。たとえば、製品 2 のキュウリは次のデザインに変更できます。
属性テーブル
2 | |
3 | |
b | |
c | |
属性値 | ||
---|---|---|
16g | あ | |
ホワイト | あ | |
4999 | b | |
32g | b | |
ホワイト | b | |
4999 | c | |
上海 |