2017-10-20 9 views
0

私は現在、注文と請求書の両方を保持しているテーブルを持っていますが、これらは2つの別々のテーブルに分割する必要があります。多対多のSQLの関係

Order  Invoice 
141   428 
141   428 
141   428 
141   646 
141   646 
222   428 
222   428 

私は、この例では、多くの関係に多くを削除する正しい方法についてのヘルプを探していた

enter image description here

答えて

1

1)あなたの例では、1件の注文が複数の請求書を持つが、必ずしもそうではない一つを示します同じ注文に属する請求書。 a)請求書が1つの注文にしか属していない場合は、 "請求書"テーブルに "order"(または希望する任意の相対名)フィールドを作成し、これを外部キーにする必要があります。 b)請求書が多数の注文に属している場合(これは本当に多対多関係になります)、「invoiceorder」のような名前の3番目の表を作成する必要があります。これには2つの項目、注文と請求書、そのうち注文するための外部キーと請求書テーブルがそれぞれあります。

2)あなたの例には、何度も使用された請求書注文タプルも表示されています。あなたはこれについていくつかの光を当てなければなりません。おそらく上記のオプション1bを使用すると、idを追加して、このIDの外部キーとなるフィールドを大(?)テーブルに含めることができます。

+0

各行はその注文の異なる項目です –

+0

OK、これも私にお答えください:請求書は多くの注文に表示できますか? –

+0

はい、請求書には多くの受注があります。 –