STI=レガシー?

武田さんの
http://blog.takeda-soft.jp/blog/show/218
と私の
http://d.hatena.ne.jp/yuichi_katahira/20070926/1190770131
を受けての?藤岡さんからのトラバ。
http://d.hatena.ne.jp/xibbar/20070927

うんうん、そうだよね。roleとか準備すると権限範囲って感じが全面に出るけど(俺イメージ)、組織の中においては確かに継承の関係の方が落とし込みやすかったりするかもー。色んなケースがあるからケースバイケースだよねとか考えていてふと思いました。

シングルテーブルインヘリタンスってレガシー向きなんじゃない?

STIの構成になるとUsersにtypeカラムが追加されるわけです。で、ここにadministratorとかmanagerと入るわけですが、これってDB設計だけ見るとフラグっぽい訳です。←ココ重要!
なんだけど、Rails的にはManagerモデルやAdministratorモデルを用意してる。一見正規化せずフラグっぽいカラムで管理されているように見えて、Rails的にはきちっと管理できている。レガシーっぽい発想の顧客も設計にGoを出してくれて、開発側はRails内でSTIできちっと管理みたいな・・・。
あー、でもあれか、フラグといったらやっぱりadmin_flagとかmanager_flagなんて名前でvalueには1とか0ってのが王道か?それに、レガシーって言ったらやっぱり既存DB使うような案件が多いだろうから、そもそも新規で提案って、あんまりあり得ないかも。しかも新規提案だったら、自分だったら、DB設計についてはRails流を強硬に主張するだろうし・・・。
うーん、途中まで書いておいてなんだけど、レガシー向きとはいえないかも。でも、せっかく書いたから投稿しておきます(^_^;)