繁体   English   中英

ER diagramm建模:FK到多个表

[英]ER diagramm modeling: FK to more than one table

我在SQL Server 2008上使用数据库进行Web应用程序。我正在分析给定应用程序的ER模型。

有一个表“Table1”,其中包含“ContactType”和“ContactID”列。 基于ContactType值“ContactID”指向不同的表(Table_ContactType1或Table_ContactType2)。

所以,在这种情况下我们无法定义外键。 我想知道这是不是很好的做法? 如果没有,我应该以某种方式改变模型吗? 如果没有定义外键,它会在以后引起一些问题吗?

编辑:目前很难将ContactType1和ContactType2表组合到一个表中。 因为CotnactType1是之前使用过的表,它包含有权访问系统的用户(登录名和密码,电子邮件和其他信息)。 IT是一个包含许多领域的表。 不幸的是,新的要求来了,新表ContactType2已创建。 此表只有三列,这些是没有任何系统访问权限的组织名称。 将它们组合起来是非常困难的,因为它会影响很多功能。 最简单的事情 - 当联系contacttype1表时,添加电子邮件,用户名,密码不能为空等等。还有很多其他的。

您可以创建第三个表,将结合ContactType1ContactType2为他们共同的列( TypeID从你的),然后你可以FK Table1到合并后的新表(姑且称之为ContactTypeUnified

ContactType1ContactType2都可以保持原样,并且它们的ID也可以作为新的ContactTypeUnified表的FK。

您唯一的麻烦是ContactType1ContactType2上的数据操作也必须反映在ContactTypeUnified

一般而言,没有完整性的数据库设计是不值得信任的,需要不惜一切代价避免 - 所以是的,你确实需要应用外键。 在这种情况下,我只是将两个联系人类型表组合在一起,因为它们不太可能分开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM