以下问题相关,但未提供答案: 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)。
那么这里最好的解决方案是什么? (我有一些可能的解决方案,但想知道其他人的意见)
答案 0 :(得分:1)
保持字段在数据库中可为空。根据角色,在提交View
之前验证联系信息。
答案 1 :(得分:0)
您可以将列phone1从表CONTACT移动到表SUPPLIER,PERSON和CLIENT。 您可以在表格上留下其他栏目。