我有四个表:公司,产品,客户和销售。它们的关系如下:
我对您可以通过两条不同路线从销售回溯到公司这一事实感到不安。这增加了数据完整性问题的可能性 - 如果产品路线说最终父母是公司A,而客户路线说它是公司B,会怎样?
对我来说这听起来像是一个SQL反模式,但我可能错了。我该怎么办呢?
谢谢!
答案 0 :(得分:2)
这取决于。你说:
一家公司可以拥有多家公司 客户
这是否意味着每个Customer
只在一个Company
购物?
如果没有,Customer
和Company
之间的关系是否应该由他们购买的Products
定义?
这意味着删除fk_Company
上的Customer
字段(或等效字段)。
但是,如果关系是Company
在注册的Customer
,则情况会有所不同。
在这种情况下,如果Products
买方和Company
Customer
“属于”之间存在冲突,那么这不是真正的冲突 - 冲突将发生在Company
Customer
已注册,以及Company
已 购买的Customer
,即不真正的冲突。
最终的问题是,Customer
和Company
之间的关系是什么 - 它是Customer