我很喜欢在T-SQL中编写代码,但是对于db设计来说是新的。我有是否有可能对列有两个外键
- 一个部门表PK_Department
- 的LOINC代码/与PK_Loinc
- 非LOINC代码/与PK_nonLoinc测试信息一(不同结构)表测试信息表。
我想设置之间(PK_Department)一比一的关系< -
>(PK_Loinc OR PK_nonLoinc)有没有一种方法来设置使用两个FK在T-SQL这种关系?
如果不是这样,我想我可以设置有三列,PK_union, PK_Loinc and FK_nonLoinc -- where (FK_Loinc is filled ExclusiveOR FK_nonLoinc is filled)
然后建立一个表链接FK_UNION
与FK_Department
但最好我能做到这一点,而无需创建其它表的表LoincAndNonLoincCodes。
我可能是错的,但据我所知答案是否定的,你不能有一列的两个FKs。额外表格的另一种替代方法可能是一个额外的列。在部门表中,放入FK_Loinc和FK_nonLoinc,只填充一个或另一个。这取决于数据库规则的严格程度(您可以添加触发器来防止被填充,但这是一个很大的努力)。 – EvilBob22
你似乎删除了你原来的问题?如果我理解正确,对于Loinc,您只需要'{LoincID}'作为密钥,而对于本地而言,您需要'{LocalID,Verbose}'作为密钥? –
@DamirSudarevic,这是正确的。尽管我没有删除“原始”文章。你什么意思? – bernie2436