1

これは、外部キーの冗長性に関する質問です

冗長な外部キー? <- 同様の質問

一般に:

テーブル C外部キーは、テーブル B主キーを参照します。テーブル Cの外部キーは、テーブル Aのキーを参照します。テーブル Bの外部キーは、テーブル A の主キーを参照します。

C は B を介して A に接続されているため、C -> A からの外部キーは必要ですか?

特定: 3 つのテーブル

サプライヤー情報表A

サプライヤー ID - 主キー

担当者連絡先情報 (サプライヤー用) 表 B

部品番号 - PK
受領日 - PK
サプライヤー ID - FK

部品リスト表 C

部品番号 - PK & FK
日付 - PK & FK
サプライヤー ID - FK

ありがとう - すべてのテーブルを作り直すための提案も歓迎します

4

1 に答える 1

2

個人のサプライヤーが常に部品によって表されるサプライヤーであると仮定すると、キーは技術的に冗長になります。物事は時間の経過とともに変化する可能性があることを忘れないでください。おそらく、サプライヤが合併したり、関連付けられているサプライヤが変更されたり、部品に関連付けられたサプライヤが変更されたりする可能性があります。

ただし、データ構造は適切に正規化されていないように見えます。personその人物に関する情報のみを含むテーブルが必要になると思います。部品と人の関係がわかりません。

したがって、データ構造を作り直す必要があると思います。サプライヤー、人、部品など、特定したエンティティから始めることをお勧めします。次に、必要に応じて、それらの関連付けテーブルを作成します。関係をモデル化するために、各人が を持ちSupplierId、各部分が を持っている必要がある可能性は十分にあります。部品と人の間に関係があれば、部品のフィールドSupplierIdだけでそれを満たすことができるかもしれません。PersonId

于 2013-07-19T23:21:49.420 に答える