也许标题具有误导性,但我会尝试解释我正在尝试做的事情。
我正在建立一个电子商务网站。我有我的产品和订单。我想根据每种产品对订单如何交付给客户添加限制。
例如,如果我出售一件大而易碎的产品,我想限制它不能通过快递发送,那么客户应该只能选择从商店取走。或者特定产品只能发送到有限的国家/地区。
我想我可以创建一个与产品相关的额外表格。
这样我就可以知道每个产品有哪些类型的约束。而且我对我可以做多少额外类型的限制没有限制。
例如
restrictions(1,124,'post.courier',false)
但如果这样做,
restrictions(2,1322,'country','Greece')
值字段是不同的类型。
我的第二个想法是使用字段限制类型 TEXT 并以JSON
格式或XML
另一个想法是为每种类型创建单独的表,
加入他们,但这似乎不合适。
在我的情况下什么是最好的?
有没有更好的方法可以设计我的数据库?
假设您的产品可能有不止一项限制是不是很安全?
在那种情况下,您不需要产品和限制(类型)之间的交集吗?
考虑这个 ERD:
请注意,限制是使用实体子类型模型显示的。您可以保留适合您需要的数据类型的不同限制值类型。同时,各个特定的限制类型与限制头表共享一个键空间。这使得 intersection:
PRODUCT_RESTRICTION
更容易定义和使用。有不同的方法可以做到这一点,但您可能需要考虑在表中包含一个分区属性。
RESTRICTION
沃尔特·米蒂建议:
乔尔布朗回应:
我所说明的限制模型是实现子类型化的一种常见方式。还有其他变化。