.+_kind
とか、.+_type
とか、マジックナンバーをデータベースに保存することって、よくある。
ロジックの方では、その値に応じて、処理を分岐したりする。
んで、分岐するために、基準となる値をコード上にもつ。 これを脱却したいとよく思う。
それもマスタデータのIDをコード上に持つことが、ある。
kinds table
- id
- name
データベース上にはこれだけの情報しかなく、コード上に
if (kind.id == ENUM_KIND_A) { .... } else if(kind.id == ENUM_KIND_B) { .... } else if (kind.id == ENUM_KIND_C) { ........
などとあふれるのだ。
データベースの値を、コード上にも持つこと。その整合性を担保するコストは誰が払うのか。 本当に整合なのか。そこも常に懸念せざるを得なくなる。
これをどうにか脱却したいと欲求はあるのだが、いまひとつ答えはでない。