3

CatalogとCatalogIndexの2つのテーブルがあります

カタログには次の列があります

DN
PID
PURL
Desc

ここで、2つの列DN、PIDは、このテーブルの複合主キーの一部です。

CatalogIndexには次の列があります

PID
PItem
PVal

PIDとPItemは、CatalogIndexテーブルの複合主キーの一部です。

カタログテーブルのPIDを参照するPID列のCatalogIndexにforiegnキーを追加したいと思います。

SQLServer2008を使用しています

ありがとうございました

4

2 に答える 2

7

複合主キーの一部のみを参照することはできません(複合 PK の多くの欠点の 1 つ - それらを参照するのは非常に面倒です)。

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

UNIQUE INDEX他の唯一のオプションは、参照したい列に新しいものを作成し(それらが実際にそれ自体で一意である場合)、その一意のインデックスを使用してその列のサブセットを参照することです。

于 2011-03-16T10:26:04.173 に答える
0

PID 列の PK を持つ別のテーブルを使用して、より正規化されたスキーマが必要になる場合があります。あなたのリクエストは、データベースの設計が不完全であることを示すにおいです。

于 2011-03-16T19:29:56.290 に答える