私は販売アプリケーションを作成しており、ここの人々の助けのおかげで、製品と販売の予備設計を行っています:)
しかし、私が過剰に設計しているのか、それとも設計を少し単純化できるのかはわかりません。
以下は私の製品注文スキーマです。
いくつかのビジネス ルール:
- 顧客は 1 つまたは複数の契約を注文できます
- 契約には 1 つ以上の製品を含めることができます
- 製品は、1 人以上のディストリビューターによって供給されます
- 製品は 1 つまたは複数のネットワークから供給できます
- ディストリビューターは、1 つ以上のネットワークから製品を販売できます
- 製品の価格は販売業者によって異なる場合があります
私の質問:
私の設計は過度に設計されていますか? リンク テーブルの使用と製品の 3 つのバージョンの作成は非常に複雑に思えます。
- ネットワーク製品
- ディストリビューター製品
- 製品
たとえば、ディストリビューターがネットワーク a を販売していない場合、ネットワーク a からの製品は利用できないはずです。製品を販売業者に割り当てるだけでは不十分です。たとえば、ネットワーク a のすべての製品を販売し、販売業者 1 がネットワーク a を販売しているが、b からの製品を販売していないことを照会するだけでは不十分です。 ?
スキーマを調整できないと仮定すると、私の 2 つのリンク テーブル NetworkPRoduct と DistributorNetwork は、Distributor 製品で使用される複合主キーを残すのが最適です。これは、ディストリビューターが特定のネットワークのみを販売するという事実を依然として保証しますか?
ありがとう
ロブ