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

DB setup (use of 1 contact table for multiple tables)

下面的问题是相关的,但没有提供答案:

我有一个联系人 table,它有以下列:id(PK)、phone1、phone2、email1、email2、fax1、fax2

我还有另外 3 个 table:供应商、个人和客户

我想在其他 3 个 table 中使用这 1 个联系人 table。在我的其他 3 个 table 中使用 CONTACT.id 作为 FK 很简单。

这种方法的问题在于我们的业务规则要求供应商和客户始终拥有 phone1(不允许为 NULL)。然而,一个人不一定要有手机 1(此处允许为 NULL)。

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

您可以将 phone1 列从 table CONTACT 移至 tables SUPPLIER、PERSON 和 CLIENT。 您可以在 table CONTACT.

上留下其他栏目

在数据库中保持字段可为空。根据角色,验证联系信息,然后在 View.

中提交