0

我们有一张桌子products。永远只有三种产品类型。我的 PM 坚持使用ENUMproduct.type专栏(free, pay, voucher),而我坚持制作它product.type_id

我应该使用什么论据来反对 using ENUM

4

1 回答 1

1

正如 Raphael 所链接的,那篇文章很好地概述了ENUM. 但是,让我们分析一下您的具体情况。

您正在尝试为产品添加数据,特别是它的type. 现在您拥有三种产品类型。但是你能肯定地说永远不会有第四种产品吗?由于这在ENUMs 中非常昂贵,我会说这是反对使用它们的明确投票。您只应该在定义明确且不变的小而离散的选项集中考虑它们。产品类型只是关于您的产品的另一条信息。因此,它在列定义中没有位置。

这可能就足够了,但我想指出另一个弱点。您不能ENUM在其他任何地方链接 s。因此,如果您想将系统扩展到product_groups同样受. 当您有几张单独的桌子并且权力决定您应该添加第四张时,您会遇到麻烦。typeENUM

老实说,对我来说,产品类型是一个参考表,通过它的标识符链接到任何依赖它的东西。因为迟早您必须扩展它或将其链接到其他地方。而ENUMs 并不是为此而生的。

于 2013-03-14T11:42:50.373 回答