/note/tech

コードをintで持つかstringで持つか論争について

ここで議論されているのは例えば「status」カラムに保存される値をそれぞれ意味を持たせた数値で表現するか、論理名的な文字列で表現するかという話であるが。

数値で表現する場合:

0 // 未審査
1 // 審査中
2 // 登録完了
3 // 却下

みたいな感じで数字がそれぞれの状態と対応することになる。

このようにデータを持つ場合、プログラム側でコード値と文字列を対応させる必要が出てくる。

文字列で表現する場合:

'UNEXAMINED' // 未審査
'REVIEW'     // 審査中
'COMPLETE'   // 登録完了
'REJECTED'   // 却下

という感じになる。

以下メモ書き。

結論としては、文字列表現の方がメリットがデメリットを上回っているように思える。