私は、店舗の在庫管理を担当するプロジェクトのデータベースを設計しています。製品バリエーションによる在庫追跡を扱うデータベースの設計
基本的に、各Product
は、バリエーションColor
およびSize
を有することができ、各可能なバリエーションの製品数(ストック)は、明らかに変化する。
例:ここ
[
{
"product": "Plain T-Shirt",
"color": "Red",
"size": "Medium",
"stock": 10,
},
{
"product": "Plain T-Shirt",
"color": "Red",
"size": "Large",
"stock": 2,
},
]
、同じ製品(無地Tシャツ)は、異なるバリエーションのための異なる株式を有しています。あなたが想像しているように、私はそれぞれの在庫を独立して更新できる必要があります。
このようなデータベースを設計する最も効率的な方法は何でしょうか?私はPostgreSQLを使用していますので、デザインはリレーショナルである必要がありますが、JSONフィールドにもアクセスできます。
今、私の現在の設計は一種の次のようになります。
製品
- 名(文字フィールド)
- 数量(JSONフィールド)
色
- 名(文字フィールド)
- 製品(多対1の関係の外部キー)
サイズ
- 名(文字フィールド)
- 製品(外国人多対1の関係の鍵)
色とサイズはユーザーが動的に追加できるので、システムはこれを補う必要があります。
「数量」フィールドでは、商品P1の色が「赤」、「緑」、サイズ「S」、「M」であるとします。私はQuantitiesフィールドを次のようにしようとしています:(Red、S)、(Red、M)、(Green、S)、(Green、M)現在在庫があります。
私の質問はこれです:私は正しい道にいますか?このデザインは効果的ですか、これを行うにはより良い方法がありますか?ありがとう。
カラー/サイズ/ストック以外の属性はありますか? –