如何在允许实际生活变化的同时保持数据完整性?

时间:2016-03-30 13:23:51

标签: database normalization

在我正在设计的新数据库模型中,我有一个公司表,其中有一个联系人表,使用外键 companyID field。

我有一个带有PK branchId和FK companyId的分支表。

问题是:有时联系人可以从他们所在的公司或分支机构转移到另一个公司或分支机构。我需要知道联系人所在的所有前公司和分支机构。

最好的方法是什么? 我无法弄清楚任何有意义的事情。如果我使用不同的详细信息将另一条记录插入联系人,则会有重复的记录,如果我只是更改详细信息,我将如何知道以前的详细信息?

1 个答案:

答案 0 :(得分:1)

我建议将联系人表连接到公司表的表。这个新表将包含一个contactsid,一个companyid,一个日期(或日期范围,取决于您的需求)以及描述联系人与公司之间关系所需的任何其他信息。那么联系人表将不再需要FK companyID。