失敗から学ぶRDBの正しい歩き方: 隠された状態
隠された状態とは
暗黙的なルールありきで成り立つ値
同じカラムなのに、先頭が9だから、8だから
ハイフン繋ぎの値で、それぞれが何かを表現している
ぱっと見でわからない、挙動
トリガ
正規化されていない外部キー制約
データ型が指定できない
日付を文字列でもっている場合、暗黙的なフォーマットが存在する場合
つらいこと
一般的な形になっていないので、初見がの場合に辛い
DBかアプリケーションのどちらかが、大いなるものを負担している可能性がある
ドキュメントがない場合は、もっと仕様がわからなくなる、コミュニケーションや余計なことにかかるコストが増大する
ふせぎかた
データが複数の意味を持たないようにする
一つのデータの責務を小さくする
常に状態が見えるようにするために事実のみを保存する
哲学やアプリケーション的な文脈だと
SRP → SOLID
責任を一つに
スモール・イズ・ビューティフル (小さいものは美しい) → UNIX哲学
各プログラムが一つのことをうまくやるようにせよ → UNIX哲学