我正在尝试为以下实体设计数据库架构:商店,产品,折扣和买家。目标是为几种产品提供折扣活动。但是,在我对数据库模式的第一次迭代中,我可以看到存在循环依赖关系,如下所示:
问题是:这样的依赖是一个糟糕的SQL设计吗?另外,如何包含代表产品的买方实体和使用的折扣?谢谢。
答案 0 :(得分:1)
我没有在你的模型中看到这种“循环依赖”。将其视为定向(或定向)图。从一个实体开始并且无法顺时针或逆时针返回它都是不可能的。
答案 1 :(得分:1)
答案 2 :(得分:0)
没有循环引用,根据定义不正确:例如:具有部门外键的员工(员工在工作时)和从部门到员工的外键(由其管理)。
我确实看到了一个设计缺陷:这个型号可以在商店B的商品A上打折。
如果要阻止这种情况,可以将StoreId添加到产品和折扣的主要(或备用唯一密钥),将该列添加到Product_Discounts并使其成为两个外键的一部分。
至于合并买方:您将要创建买方,销售和Sales_Items表。
最后,您需要 Sales_Items_Products_Discount 表来存储应用于销售商品的产品折扣。