質問: おつかれさまです。初歩的な質問で恐縮です。。 悩んでいる点 ------ 現在ブログのシステムを作成しています。 ブログ記事のステータスを表現するテーブルをDBに持っているのですが、そこに入れるデータを「1,2,3」というような数字にすべきなのか、それとも「"削除"、"公開"、"下書き"」とすべきなのか悩んでいます。 それぞれメリットデメリットを考えてみているのですが、 数字のメリット:表記がブレない 数字のデメリット:どの数字がどのステータスなのか忘れがち 日本語のメリット:意味が一発でわかる 日本語のデメリット:表記揺れしそう ここで、ステータスの入力画面でステータスをプルダウンから選ばせるとかすれば表記揺れもなくなり、ステータスを日本語でもっても良い気がするのですが、何となくの気持ち悪さが残ります。 私の気がついていないデメリットや、将来バグの温床となるような部分があったりするのでしょうか? 日本語でのステータス管理はここがダメだよ! というのがありましたら、ご教授願いたいです。 以上です。よろしくお願いします!!!
回答: 自分でしたら、「ステータスリスト」というテーブルを持たせて、そこにIDと名前の対応を入れる、という方法を取ります。 この方法を使うと、 * `CHECK`制約がなかったMySQLでも、外部キー制約で値を限定できる * Railsなど強力なActiveRecordのある環境などでは、名前へのアクセスも比較的容易 * キーになる値は数値なので処理がしやすく高速 * IDと名前以外に、ステータスに紐づく情報ができた場合にも、リストテーブルへ入れておくことができる などのメリットがあります。