0

多対多の関係の船のテーブルを設計するとき、主キーは[M ]側の中央のテーブルに来るでしょう、私の現在の中央のテーブルは

Salesline : Itemid(PK), SOId(PK), userid(PK) 

また

Salesline : Itemid(PK), SOId(PK), 
userid_salesorder(PK) , // links to the salesorder.userid attribute 
userid_item(PK) // links to the item.userid attribute 

どちらが正しい方法ですか?

ERD

4

1 に答える 1

1

あなたのエンティティ間の自然な関係は次のように見えます:

  • ユーザーは 0、1、またはそれ以上の SalesOrders を出すことができます
  • SalesOrder には 1 つ以上の SalesLines を含めることができます
  • SalesLine は正確に 1 つのアイテムに対応します
  • Item は、多数の SalesOrders で注文できます

User テーブルと Item テーブルの間の関係を壊し、注文された特定のアイテムの数量を SalesLine テーブルに移動することをお勧めします。User、SalesOrder、および Item には、単純な、場合によっては代理の主キーが必要です。SalesLine の主キーは、SalesOreder テーブルへの外部キーと、たとえば注文内の行番号で構成される複合型の場合があります。

于 2012-08-01T19:55:02.493 に答える