テーブルがありますproducts
。これまでに 3 種類の製品しかありません。私の PM はコラムに使用ENUM
することを主張していますが、私は作成することを主張しています。product.type
(free, pay, voucher)
product.type_id
の使用に対してどのような引数を使用する必要がありますENUM
か?
テーブルがありますproducts
。これまでに 3 種類の製品しかありません。私の PM はコラムに使用ENUM
することを主張していますが、私は作成することを主張しています。product.type
(free, pay, voucher)
product.type_id
の使用に対してどのような引数を使用する必要がありますENUM
か?
Raphael がリンクしたように、その記事は の長所と短所の概要ですENUM
。しかし、あなたの特定のケースを分析しましょう。
製品、具体的にはそのtype
. 現在、3 つの製品タイプがあります。しかし、第4のタイプの製品は絶対にないと断言できますか? それは s では非常に高価なので、ENUM
それらを使用することに反対票を投じることは明らかです。それらは、明確に定義され、変更されない、小さくて個別のオプションのセットでのみ検討する必要があります。商品タイプは、商品に関するもう 1 つの情報です。そのため、列定義には場所がありません。
おそらくそれで十分でしょうが、別の弱点を指摘したいと思います。s を他の場所にリンクすることはできませENUM
ん。そのため、システムを拡張したい場合、たとえばproduct_groups
によっても制限されているtype
場合、さらに別の を再作成する必要がありますENUM
。いくつかの別々のテーブルがあり、権力者が 4 番目のテーブルを追加する必要があると判断した場合、あなたは悲惨です。
正直なところ、私にとって製品タイプは参照テーブルであり、その識別子によってそれに依存するものにリンクされています。遅かれ早かれ、それを拡張するか、別の場所にリンクする必要があるからです。そしてENUM
、それはそのために作られたものではありません。