我所处的情况是我有一组现有表,其中Integers作为ID递增。现在,我已将GUID添加到每个表中作为新的PK。
我有一张主桌子
dbo.ParentTable(GUID - PK, ParentTableId INT, Name VARHCHAR)
和一个儿童桌子
dbo.ChildTable(GUID - PK, ParentTableId INT, other fields.....)
并希望在这两者之间建立关系(主要是因此,基于.Net的LINQ to SQL将建立实现),基于ParentTableId。
我意识到我无法在两者之间建立FK关系,因为它们现在具有PK的GUIDS。
我应该更新子表中的GUID,以便它们链接回其父表,还是可以基于现有的ParentId列创建关系?
两者之间的关系是一对多(父母与子女),我正在使用SQL Server 2008。
最佳答案
我认为您可能会误以为只能创建引用FOREIGN KEY
的PRIMARY KEY
。实际上,您可以创建引用FOREIGN KEY
约束的UNIQUE
,例如
ALTER TABLE ParentTable ADD
UNIQUE (ParentTableId);
ALTER TABLE ChildTable ADD
FOREIGN KEY (ParentTableId)
REFERENCES ParentTable (ParentTableId);