shirts1とshirts2という2つのテーブルがあり、御覧の通りsizeカラムの型が異なります。
3種類しかないのでマスタテーブルを作るほどでもないと思っていまが、下記いずれの型でsizeカラムを設定したらいいのか決められません。
SQL
1# shirt1 2CREATE TABLE shirts1 ( 3 name VARCHAR(40), 4 size INT(1) # 1=small, 2=medium, 3=large を意味する 5); 6 7# shirt2 8CREATE TABLE shirts2 ( 9 name VARCHAR(40), 10 size ENUM('small', 'medium', 'large') 11);
INSERTとSELECTは次のようになります。
shirts1はやはり WHERE size = 2 という数値指定で済むので速度が速いと思うのですが、逆にshirts2は WHERE size = 'medium' という文字列指定でわかりやすい面があります。
あとはshirts2のENUMならば値を制限できるメリットもありますが、フロントから入力される値ではないためあまり大きなメリットではないと言えそうです。
sql
1# shirt1 2INSERT INTO shirts1 (name, size) 3VALUES ('dress shirt',1), ('t-shirt',2), ('polo shirt',3); 4SELECT name, size FROM shirts1 WHERE size = 2; 5 6# shirts2 7INSERT INTO shirts2 (name, size) 8VALUES ('dress shirt','small'), ('t-shirt','medium'), ('polo shirt','large'); 9SELECT name, size FROM shirts2 WHERE size = 'medium';
ここでどちらにすべきか決めかねてしまい、識者の皆様からアドバイスを頂きたく思っています。
このように数個しかなくマスタテーブルを作るほどでもない種類について、速度を優先して数値型にすべきか?それともわかりやすさを優先してENUMの文字列型にすべきか?
皆様いかが思われますでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/22 11:36
2020/06/22 11:49
2020/06/22 11:55
2020/06/22 11:59