引用一个专栏中,我有两个表目录和CatalogIndex如何创建一个外键复合主键
目录下面几列
DN
PID
PURL
Desc
,其中两列DN,PID是一部分此表的复合主键。
CatalogIndex具有以下的列
PID
PItem
PVal
PID和PItem是CatalogIndex表复合主键的一部分。
我想在目录表中引用PID的PID列上添加一个foriegn键给CatalogIndex。
我使用SQL Server 2008的
谢谢
引用一个专栏中,我有两个表目录和CatalogIndex如何创建一个外键复合主键
目录下面几列
DN
PID
PURL
Desc
,其中两列DN,PID是一部分此表的复合主键。
CatalogIndex具有以下的列
PID
PItem
PVal
PID和PItem是CatalogIndex表复合主键的一部分。
我想在目录表中引用PID的PID列上添加一个foriegn键给CatalogIndex。
我使用SQL Server 2008的
谢谢
您不能参考之用复合主键的部分(化合物PK的许多缺点之一 - 它变得非常凌乱引用它们) 。
你需要参考的钥匙,整个钥匙只有钥匙(所以帮你Codd :-))。
唯一的其他选择是在希望引用的列上创建新的UNIQUE INDEX
(如果它们确实是唯一的),然后使用该唯一索引来引用该列的子集。
您可能需要一个更规范化的模式,使用一个单独的表在PID列上具有PK。您的请求是一种表示数据库设计不完善的气味。