Sql server 实体框架/SQL Server许多外键
在使用实体框架和SQLServer时,我试图决定表的设计 我有一个与许多其他实体(大约15个)相关的实体(地址) 我可以在DB中创建15个可为null的FK列,也可以创建一个未绑定列(EntityPrimaryKey)和一个EntityType列来跟踪EntityPrimaryKey列值的用途Sql server 实体框架/SQL Server许多外键,sql-server,entity-framework,entity-framework-4,Sql Server,Entity Framework,Entity Framework 4,在使用实体框架和SQLServer时,我试图决定表的设计 我有一个与许多其他实体(大约15个)相关的实体(地址) 我可以在DB中创建15个可为null的FK列,也可以创建一个未绑定列(EntityPrimaryKey)和一个EntityType列来跟踪EntityPrimaryKey列值的用途 这两种不同的设计可能会有什么问题?关于哪个更好的意见?始终使用可用于强制引用完整性的外键real “一个键和一个列来定义键的类型”一开始听起来可能是个好主意——但最终,由于您无法建立任何引用完整性,因此它
这两种不同的设计可能会有什么问题?关于哪个更好的意见?始终使用可用于强制引用完整性的外键real “一个键和一个列来定义键的类型”一开始听起来可能是个好主意——但最终,由于您无法建立任何引用完整性,因此它实际上毫无意义
随着时间的推移,所有不再被引用的表中都会出现“僵尸”子行。数据的质量和完整性对我来说是一个好的数据库设计最重要的方面——始终确保您的数据完整性是铁的——其他任何东西都比这一要求更重要 我也有同样的问题。答案对我来说很重要:)基本上我同意你的观点,但是如果他使用触发器(在大多数情况下这是个坏主意),他当然可以解决你提到的问题,所以他不一定会有僵尸记录。否则,我和你的观点相同。15个可为null的FK列可能会有什么样的性能/锁定影响?而且我无论如何都需要使用触发器来确保不会同时填充超过1个FK列…@JeffN825:如果只设置了这15个可为null的FK列中的一个,那么实际上没有性能或存储开销期待着汉克斯。有人提到了死锁的可能性。。。。我不知道这将如何发生……但我只是想把它扔出去……这有什么意义吗?