区分値となるカラムを設計する際、
例えば性別の場合、
①数値毎に意味を持たせる
0
= 不明
1
= 男性
2
= 女性
ID | Name | Gender |
---|---|---|
1 | Kris | 0 |
2 | John | 1 |
3 | Jane | 2 |
②意味のある文字列にする
Unknown
= 不明
Male
= 男性
Female
= 女性
ID | Name | Gender |
---|---|---|
1 | Kris | Unknown |
2 | John | Male |
3 | Jane | Female |
のようにするのとでは、どちらが一般的なのでしょうか?
(性別の場合、U/M/F でもいい気はしますが、これもパターンとしては①だと思います)
①の場合、何を意味するのかが分からず設計書を調べるなどしなければならず面倒ですし、
コーディング時のミスにもつながるかと思います。
②の場合はデータ量が若干増える、CHECK制約をつけない場合にタイポを防げないなどのデメリットはあるかと思いますが、
それを踏まえても個人的には②で分かりやすくなるメリットの方が大きいと素人ながらに思うのですが、
一般解としてはどちらがよいのでしょうか?
(SQLアンチパターンなども調べましたが見つからず。。。)
よろしくお願いいたします。
無関係かもしれませんが、DBMSはSQLServer、このDBを扱うプログラムの言語はC#.NETです。(カラム名がパスカルケースなのはその関係)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/24 10:03