数値型か文字列型か
以下を混在しない様に注意する
pritimive型の表現
プログラム上の表現
↑もっと良い言い回しがあると思うmrsekut.icon
プログラム上では基本的にnewtypeのような概念で扱うことを前提とする
その上で、使用している、言語やRDBMSの仕様に則って、都合の良いprimitve型を選択する
という順序で考える
犯しがちな間違いは「数値の列として表現されるから、数値型にする」というもの
例えば、郵便番号や電話番号は、
数値のみの列であり、文字列は含まれない
しかし、だからといって数値型で表現すべきでない
文字列型にすると、"hoge"みたいな郵便番号を許容しちゃうじゃん、というのは別で考えようということ
primitive型としては文字列を採用しつつ、
数値である、N桁である、といったvalidationを別途用意する
逆に言えば、「validationをするのが面倒なので、数値型を採用する」というのは間違っているということ
以下のような特徴があるものは文字列
演算を行わない
incrementはあるかもしれない
0 paddingする、桁が一定である
例えば、numberっぽいがstringにする例
IDなども、文字列であることが多い
id1 + id2のような計算はすることがない
0 paddingした場合に変になる
部分一致で検索する可能性がある
10桁固定のIDとか
参考