3

私は販売アプリケーションを作成しており、ここの人々の助けのおかげで、製品と販売の予備設計を行っています:)

しかし、私が過剰に設計しているのか、それとも設計を少し単純化できるのかはわかりません。

以下は私の製品注文スキーマです。

いくつかのビジネス ルール:

  1. 顧客は 1 つまたは複数の契約を注文できます
  2. 契約には 1 つ以上の製品を含めることができます
  3. 製品は、1 人以上のディストリビューターによって供給されます
  4. 製品は 1 つまたは複数のネットワークから供給できます
  5. ディストリビューターは、1 つ以上のネットワークから製品を販売できます
  6. 製品の価格は販売業者によって異なる場合があります

ここに画像の説明を入力

私の質問:

  1. 私の設計は過度に設計されていますか? リンク テーブルの使用と製品の 3 つのバージョンの作成は非常に複雑に思えます。

    • ネットワーク製品
    • ディストリビューター製品
    • 製品

    たとえば、ディストリビューターがネットワーク a を販売していない場合、ネットワーク a からの製品は利用できないはずです。製品を販売業者に割り当てるだけでは不十分です。たとえば、ネットワーク a のすべての製品を販売し、販売業者 1 がネットワーク a を販売しているが、b からの製品を販売していないことを照会するだけでは不十分です。 ?

  2. スキーマを調整できないと仮定すると、私の 2 つのリンク テーブル NetworkPRoduct と DistributorNetwork は、Distributor 製品で使用される複合主キーを残すのが最適です。これは、ディストリビューターが特定のネットワークのみを販売するという事実を依然として保証しますか?

ありがとう

ロブ

4

1 に答える 1

1

複雑さがビジネスルールを満たすために必要なポイントを超えてコストがかかる場合、設計は過剰に設計されます。誰もこの決定をあなたより良くすることはできません。個人的には、設計が不十分だと思います。

あなたが遭遇する可能性のある問題は、製品を購入するディストリビューターが契約締結時にわからない可能性があることです。あなたのスキーマはあなたがこれを知っていると想定しているように私には見えます(私はこれを誤解しているかもしれません)。したがって、追加の製品テーブルとディストリビューターの真の価格マトリックスが必要になる可能性があります。

また、現在の設計が非常に複雑に思われる場合は、これをどのようモデル化するか、および今後どのようにモデル化する予定かをお見せする必要があります。

于 2012-09-03T13:12:48.167 に答える