2015-02-10 31 views
0

下面的问题是相关的,但是没有提供答案: https://stackoverflow.com/questions/9104820/single-contact-table-for-multiple-entitiesDB设置(使用多个表1个联络表)

我有有列的联系表:ID(PK),PHONE1,PHONE2 ,EMAIL1,EMAIL2,FAX1,FAX2

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

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

这种方法的问题在于我们的业务规则要求供应商和客户始终拥有phone1(不允许NULL)。然而,PERSON不必有phone1(这里允许NULL)。

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

+4

保持数据库中的字段不可空。根据角色,验证联系人信息,然后在您的“视图”中提交。 – adiga 2015-02-10 08:31:29

+0

Marianogs答案是一个选项,但我用这个选项来实现,这是一个很好的选择,thnx – 2015-02-17 08:28:52

+0

这是我选择的方法,因此您可以将其作为答案张贴! – 2015-02-18 08:33:42

回答

1

保持数据库中的字段不可空。根据角色,验证联系信息,然后提交View

0

您可以将列phone1从列表CONTACT移动到表供应商,个人和客户。 您可以在表CONTACT上留下其他栏。