我已经为需要成为表主键的表添加了一个'版本'列,但是我有一个与不包含表的外键关系版本。 (而且不应该)我相信我至少会得到一个答案,解释为什么这是不可能的,我得到了为什么我不能在这里创建一个关系。我正在寻找一种轻松/无痛的方式。我需要的行为是主表可以添加版本,而'其他表'仍然链接到所有这些表。这实际上是一个没有连接表的多对多关系。 (然而实际上,在任何给定的时间,只有给定键的主表的一个'版本'是活动的。)我打算使用检查约束和触发器的混合来强制我自己的参考完整性......但是有没有更好的方法?由于与单列上的组合外键的关系
表
TableID (uniqueidentifier) - PRIMARY KEY
Version (int) - PRIMARY KEY
...
OTHERTABLE
OtherTableID (int) - PRIMARY KEY
TableID (uniqueidentifier)
...
如果您不需要'版本'在其他表中,请不要将它作为父表的主键的一部分。 – 2012-02-20 15:24:50
然后,我会在主表中有重复的'TableIDs ... – Paul 2012-02-20 15:25:39
其他表应该具有FK到特定版本吗? – 2012-02-20 15:26:30