我正在创建一个销售应用程序,并对产品和销售进行初步设计,这要归功于这里人们的帮助:)
然而,我不确定我是否可能过度设计或可以稍微简化我的设计。
以下是我的产品订单架构。
一些业务规则:
- 客户可以订购一份或多份合同
- 一份合同可以包含一个或多个产品
- 一个产品可以由一个或多个经销商提供
- 一个产品可以由一个或多个网络提供
- 经销商可以销售来自一个或多个网络的产品
- 产品价格可能因经销商而异
我的问题:
我的设计是否过度设计?使用链接表和创建产品的 3 个版本似乎非常复杂
- 一种网络产品
- 分销商产品
- 产品
我正在尝试执行数据库中的业务规则,例如,如果分销商不销售网络 a,那么来自网络 a 的产品不应该可用。仅将产品分配给分销商是不够的,例如来自网络 a 的所有产品,然后只是查询以查看分销商 1 销售网络 a 但没有来自 b 的产品这是一个硬性规则,我想阻止人们选择他们不应该选择的产品'吨?
假设我无法调整架构是我的 2 个链接表 NetworkPRoduct 和 DistributorNetwork 最好留下用于分销商产品的复合主键,或者我可以使用诸如 networkprodutid 之类的代理键如何逃脱?这仍然会导致分销商仅销售某些网络这一事实吗?
谢谢
抢