Sql 数据库设计-我这里有冗余吗?
我有四张桌子:公司、产品、客户和销售。它们的关系如下:Sql 数据库设计-我这里有冗余吗?,sql,anti-patterns,Sql,Anti Patterns,我有四张桌子:公司、产品、客户和销售。它们的关系如下: 一个公司可以有多个产品 一家公司可以有多个客户 销售是产品和客户的产物。每个销售记录都指向一个产品和一个客户 我感到不安的是,你可以通过两种不同的途径追溯到该公司的销售。这就增加了数据完整性问题的可能性——如果产品路线说最终的母公司是A公司,而客户路线说是B公司怎么办 这听起来像是SQL反模式,但我可能错了。我能怎么办 谢谢 视情况而定。你说: 一个公司可以有多个 顾客 这是否意味着每个客户只在一家公司购物 如果不是,那么客户和公司之间
- 一个公司可以有多个产品
- 一家公司可以有多个客户
- 销售是产品和客户的产物。每个销售记录都指向一个产品和一个客户
客户
只在一家公司
购物
如果不是,那么客户
和公司
之间的关系不应该由他们购买的产品定义吗
这意味着删除Customer
上的fk_Company
字段(或等效字段)
但是,如果关系是客户注册的公司
,则这是不同的
在这种情况下,如果购买的产品
与公司
客户
“所属”之间存在冲突,则这不是真正的冲突-冲突将发生在公司
与注册在的客户
之间,以及客户刚刚购买的公司
,即,不是真正的冲突
最终的问题是,客户
和公司
之间的关系是什么?客户在哪里
- 最后购买(多余)
- 通常是商店(冗余)
- 首次购买(多余)
- 已注册(可能不是多余的)
谢谢你。我可以看出,这一切都在上下文中!