俺持論

http://blog.takeda-soft.jp/blog/show/218
わかりやすくというのは全くその通りです。特に今まで(今も)一人で書いてて気がまわらない部分で、耳がいたい話です。
で、武田さんが言いたいのはそんな枝葉末節の事ではないとは思いますが、あえて突っ込ませてもらいます。というか、例にあげたUsersテーブルが気になるので・・・。
あげてる例のadminとかのフラグは、自分はそもそも別テーブルに追い出すべきだと思います。
http://d.hatena.ne.jp/masayang/20070921/1190402380
こういうこと↑

で、個人的には武田さんが今回あげたようなケースでは、managerとかも出てきてるので自分ならacl_systemプラグインを使います。
http://brainspl.at/articles/2006/02/20/new-plugin-acl_system
acl_systemはhas_and_belongs_to_many使ってるので、権限の有効期間とか何か追加していくならhas_many :throughを使うように拡張して、中間テーブルに意味合いを持たせていけばいいと思います。

自分は、ロジックをごりごりと書かなきゃいけなくなるようなDBを設計した段階で負けかなと思ってます。DBの設計で解決出来ることはDBで。
・・・・と、過去、自分が設計した駄目なDBを見ながら、いつも思っています。