ホームページ >データベース >mysql チュートリアル >データベース設計で製品バリアントを効率的にモデル化するにはどうすればよいですか?

データベース設計で製品バリアントを効率的にモデル化するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-30 19:47:15745ブラウズ

How to Efficiently Model Product Variants in a Database Design?

製品バリエーションのモデリング

データベース設計では、製品にサイズや色などのバリエーションを持たせることができます。このような製品バリエーションを効率的に管理するには、 、次の使用を検討してくださいアプローチ:

デザイン:

--------------- ------------- --
|製品 |----- --------------- ---------------
| #製品ID | | #product_id |
| 製品名 | | #variant_id |
--------------- | sku_id |

    |             +---------------+
    |                       |

--------^-------- --------^--------
| PRODUCT_OPTIONS |-----< VARIANT_VALUES |
----------------- ---------------
| #製品ID | | #product_id |
| #オプションID | | #variant_id |
--------v-------- | #option_id |

    |              |  value_id       |

----------------- --------v--------
|オプション | |
--------------- |
| #オプションID | |
| オプション名 | |
--------------- |

    |                       |

-------^------- |
| OPTION_VALUES |---------------
---------------
| #option_id |
| #value_id |
| value_name |
---------------

主キー、一意キー、外部キー:

  • 製品

    • PK: product_id
    • 英国: product_name
  • OPTIONS

    • PK: option_id
    • UK: option_name
  • OPTION_VALUES

    • PK: option_id、value_id
    • UK: option_id、value_name
    • FK: option_id 参照オプション(option_id)
  • PRODUCT_OPTIONS

    • PK: product_id、option_id
    • FK: product_id 参照製品 (product_id)
    • FK: option_id参照オプション (option_id)
  • PRODUCT_VARIANTS

    • PK: product_id、variant_id
    • UK: sku_id
    • FK: 製品ID REFERENCES PRODUCTS (product_id)
  • VARIANT_VALUES

    • PK: product_id、variant_id、option_id
    • FK: product_id、variant_id REFERENCES PRODUCT_VARIANTS (product_id、variant_id)
    • FK: product_id、option_id REFERENCES PRODUCT_OPTIONS (product_id、option_id)
    • FK: option_id、value_id REFERENCES OPTION_VALUES (option_id, value_Id)

データ例:

PRODUCTS PRODUCT_VARIANTS PRODUCT_OPTIONS OPTIONS OPTION_VALUES VARIANT_VALUES
1, Shirt 1, Size 1, Shirt, Size 1, Size 1, Small 1, Small
1, Shirt 2, Color 1, Shirt, Color 2, Color 1, White 2, White
2, Trousers 3, Size 2, Trousers, Size 1, Size 2, Medium 3, Medium
3, Trousers 4, Color 2, Trousers, Color 2, Color 1, White 4, White

設計上の考慮事項:

  • この設計により、新しい製品とバリアントを動的に追加できます。
  • すべてのバリアントは、一意の SKU で表されます。 .
  • SKU 値はすべてで一意です
  • 設計により、各製品バリアントの組み合わせが一意の SKU、オプションと値のセットに関連付けられるようになります。
  • 既存のバリアントに影響を与えることなく、バリアント オプションを追加または削除できます。

使用例:

シャツ製品を考えてみましょうさまざまなサイズや色を持つことができます。このデザインを使用して、製品 Shirt、Small および Medium 値を持つバリアント Size、および Red および Blue 値を持つバリアント Color を作成できます。サイズと色の各組み合わせには、スモール レッドやミディアム ブルーなど、固有の SKU があります。

以上がデータベース設計で製品バリアントを効率的にモデル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。