我有4张桌子:Project, Design, Customer, Contacts
一个项目可以有多个设计,每个设计都有客户,并且客户有联系。
为了检索项目的联系人,我的团队在其中有一张桌子
ProjectKey CustomerKey ContactKey
它们是3个表(项目,客户和联系人)的主键
因此,此表实际上有很多数据。问题是我们不想将客户和联系人与Project关联,我们希望与Design关联。
在不影响实际数据的情况下更改此关系的最佳方法是什么?我的意思是,现在我们希望每个设计都可以有自己的联系人和客户,所以一个项目可以在不同的设计中有两个称为“客户1”的客户,但是他们可以有不同的联系人。
答案 0 :(得分:0)
您有两个选择,
第一个是将DesignKey包含在事实表中,例如
ProjectKey, DesignKey, CustomerKey, ContactKey
第二个是拥有两个事实表
ProjectKey, DesignKey
DesignKey, CustomerKey, ContactKey
选项一似乎更好。重要的因素是您错过了原始事实表中的中级设计。由于同一客户的联系会因不同的设计而改变,因此必须包括在内。