2

私は2つのテーブルを持っています:

テーブル A: 複合主キーを使用。

CommonID (PK) | Month (PK) | some data...
-----------------------------------------
1             | May 2011   | ...
1             | June 2011  | ...
2             | May 2011   | ...
2             | June 2011  | ...

表 B: 表 A を参照

ID (PK) | A_CommonID (FK)| some data...
-----------------------------------------
...     | 1              | ...
...     | 2              | ...

ご覧のとおり、テーブルBは主キー全体を参照していませんが、SQL クエリでA使用される指定された使用月のグローバル値があるため、常にテーブル内の一意のエントリを参照します。A.Month

さて、私の質問は、それは許可されていますか、それともデータベース設計のいくつかの規則に違反していますか?

学士号を取得するために書かなければならない最終文書で使用するので、素晴らしい回答をいただければ幸いです。

よろしくお願いします!

4

1 に答える 1

1

いいえ、これは許可されていません。

複数の列で構成される複合主キーがある場合、外部キーも複合であり、主キーに含まれるすべての列を参照する必要があります。

外部キーは、主キー、キー全体、およびキーのみを参照する必要があります(したがって、Coddを助けてください):-)

できることは、そのA_CommonID列に個別の一意のインデックスを作成して、その一意のインデックスを (PK の代わりに) 参照できるTable Aようにすることです。Table B

于 2011-08-14T08:28:37.730 に答える