我们有一张桌子products
。永远只有三种产品类型。我的 PM 坚持使用ENUM
该product.type
专栏(free, pay, voucher)
,而我坚持制作它product.type_id
。
我应该使用什么论据来反对 using ENUM
?
我们有一张桌子products
。永远只有三种产品类型。我的 PM 坚持使用ENUM
该product.type
专栏(free, pay, voucher)
,而我坚持制作它product.type_id
。
我应该使用什么论据来反对 using ENUM
?
正如 Raphael 所链接的,那篇文章很好地概述了ENUM
. 但是,让我们分析一下您的具体情况。
您正在尝试为产品添加数据,特别是它的type
. 现在您拥有三种产品类型。但是你能肯定地说永远不会有第四种产品吗?由于这在ENUM
s 中非常昂贵,我会说这是反对使用它们的明确投票。您只应该在定义明确且不变的小而离散的选项集中考虑它们。产品类型只是关于您的产品的另一条信息。因此,它在列定义中没有位置。
这可能就足够了,但我想指出另一个弱点。您不能ENUM
在其他任何地方链接 s。因此,如果您想将系统扩展到product_groups
同样受. 当您有几张单独的桌子并且权力决定您应该添加第四张时,您会遇到麻烦。type
ENUM
老实说,对我来说,产品类型是一个参考表,通过它的标识符链接到任何依赖它的东西。因为迟早您必须扩展它或将其链接到其他地方。而ENUM
s 并不是为此而生的。