3

2 つのエンティティが定義されています。

Product:
    ProductId  (PK)
    Name       (not null)

Parts:
    PartId     (PK)
    Name       (not null)

これらの間には多対多の関係が定義されています。私の要件では、複合製品/部品項目と他の複合製品/部品との間の別の 1 対多の関係をモデル化する必要があります。場合によっては、部品のない製品を製品/部品アイテムにリンクできるようにする必要もあります。私はそれをこのようにモデル化しました:

ProductPartLink:
    ProductPartLinkId  (PK)
    ProductId          (not null)
    PartId             (null)
    ParentId           (null)

何らかの理由で、これはこの設計をモデル化する最良の方法とは思えません。多対多のクロス リファレンス テーブルはまだ存在しない可能性があるため、詳しく説明しなければリンクできません (製品とパーツの間には他の関係が定義されています)。

誰かが別のより効率的な方法を提案できますか?

更新: この ProductPartLink は単なる統計/研究目的の関係であり、製品と部品の間の関係を変更するものではありません。これをモデル化した方法に疑問を持っている理由は、実際には階層ではなく、2 つのレベルしか持たない項目間に階層を (ProductPartLink .ParentId を使用して) 実装しているためです。

4

1 に答える 1