数据库设置(多个表使用1个联系表)

时间:2015-02-10 07:59:25

标签: c# sql-server asp.net-mvc entity-framework asp.net-mvc-3

以下问题相关,但未提供答案: https://stackoverflow.com/questions/9104820/single-contact-table-for-multiple-entities

我有一个联系表,其中包含以下列:id(PK),phone1,phone2,email1,email2,fax1,fax2

我还有其他3个表:供应商,人和客户

我想在其他3个表中使用这个1联系表。通过在我的其他3个表中使用CONTACT.id作为FK来简单。

这种方法的问题在于我们的业务规则要求供应商和客户端始终拥有phone1(不允许使用NULL)。但是,PERSON不必拥有phone1(此处允许为NULL)。

那么这里最好的解决方案是什么? (我有一些可能的解决方案,但想知道其他人的意见)

2 个答案:

答案 0 :(得分:1)

保持字段在数据库中可为空。根据角色,在提交View之前验证联系信息。

答案 1 :(得分:0)

您可以将列phone1从表CONTACT移动到表SUPPLIER,PERSON和CLIENT。 您可以在表格上留下其他栏目。