折扣 UML 图
Discount UML diagram
我想知道如何在我的数据库中执行此操作。所以我试着做了一个UML图。
但我还是没有成功。我不必做 UML 图。只是我不知道如何在数据库中处理这种情况。
我的情况:
我想在我的网站上管理折扣。
折扣是这样的:
您有折扣:
- 开始
- 结束日期
您可以享受百分比折扣或绝对折扣
(例如 -20% 或 -10€)。
折扣时间:
- 产品(一对多)(仅限特定产品,例如:product_id:21)
- 订单(一对多)(在完整订单上,所以所有产品的总数,ex order_id:33)
- 具有特定提供商的产品(一对多)(例如 provider_id: 12)
- 仅适用于一个或 X 个客户(一对多)(例如:customer_id:12 和 customer_id:24)
问题是:我有 3 个 table 具有相同的 "midle table",具有几乎相同的属性...我不知道如何简化...
选项很少,每个都有一些优点和缺点。您设计它的方式绝对是一种可能的方法。好处是您可以充分利用本机数据库技术(尤其是 FK)。缺点是你最终会得到一个复杂的设计。
我想到的另一种选择是,您可以只构建一个具有三个属性的联接 table in_promotion
:
+fk_id_promotion : integer
+fk_id_prmotionRecipient : string
+promotionRecipientType
第二种在DB理解上其实不是真正的FK。另一方面,最后一个可能也是某些字典的 FK,但我暂时跳过它。
在这种方法中,您可以将 FK 混合到不同的 table,具体取决于 promotionRecipientType 中指示的类型。而不是四个 table 你有一个。
这种方法的好处是你更容易遵循模型(在某种程度上!)但你最终得到的解决方案效率较低(你不能简单地让 jon tables,你需要单独读取这些信息并在应用程序级别合并它们。另一个重要的缺点是它限制了您对 PK 类型的选择 - 对于受促销影响的对象,它们在所有 table 中必须相同。
您也可以混合使用不同的方法或以其他方式解决前面提到的缺点(导致进一步不同的缺点)。选项几乎是无穷无尽的,不可能列出所有选项。
随着时间的推移,您将学会识别在特定情况下哪种方式最有效。
我想知道如何在我的数据库中执行此操作。所以我试着做了一个UML图。
但我还是没有成功。我不必做 UML 图。只是我不知道如何在数据库中处理这种情况。
我的情况:
我想在我的网站上管理折扣。 折扣是这样的: 您有折扣:
- 开始
- 结束日期
您可以享受百分比折扣或绝对折扣 (例如 -20% 或 -10€)。
折扣时间:
- 产品(一对多)(仅限特定产品,例如:product_id:21)
- 订单(一对多)(在完整订单上,所以所有产品的总数,ex order_id:33)
- 具有特定提供商的产品(一对多)(例如 provider_id: 12)
- 仅适用于一个或 X 个客户(一对多)(例如:customer_id:12 和 customer_id:24)
问题是:我有 3 个 table 具有相同的 "midle table",具有几乎相同的属性...我不知道如何简化...
选项很少,每个都有一些优点和缺点。您设计它的方式绝对是一种可能的方法。好处是您可以充分利用本机数据库技术(尤其是 FK)。缺点是你最终会得到一个复杂的设计。
我想到的另一种选择是,您可以只构建一个具有三个属性的联接 table in_promotion
:
+fk_id_promotion : integer
+fk_id_prmotionRecipient : string
+promotionRecipientType
第二种在DB理解上其实不是真正的FK。另一方面,最后一个可能也是某些字典的 FK,但我暂时跳过它。
在这种方法中,您可以将 FK 混合到不同的 table,具体取决于 promotionRecipientType 中指示的类型。而不是四个 table 你有一个。
这种方法的好处是你更容易遵循模型(在某种程度上!)但你最终得到的解决方案效率较低(你不能简单地让 jon tables,你需要单独读取这些信息并在应用程序级别合并它们。另一个重要的缺点是它限制了您对 PK 类型的选择 - 对于受促销影响的对象,它们在所有 table 中必须相同。
您也可以混合使用不同的方法或以其他方式解决前面提到的缺点(导致进一步不同的缺点)。选项几乎是无穷无尽的,不可能列出所有选项。
随着时间的推移,您将学会识别在特定情况下哪种方式最有效。