- 23 名前:nobodyさん mailto:sage [2009/09/14(月) 20:43:56 ID:???]
- DBの設計の質問なのですがrailsが絡むのでここで質問させてください。
webシステムでユーザーのテーブルを作りたいのですが、memberテーブル(一般ユーザー)とadminテーブル(管理者ユーザー)に分けて作ろうと思っています。 ただし名前やパスワードなど共通するカラムはuserテーブルに切り出します。 この時、userテーブルとmember&adminテーブルの関連はどのように作るべきでしょうか? 以下のように@とAの二つ考えてみたのですが、どっちが良いのか分かりません。 @memberテーブルとadminテーブルそれぞれにuser_idカラムを作り、memberとadminからuserを参照する。 Auserテーブルにuser_id(memberテーブルのidまたはadminテーブルのidを格納する)とuser_type("member"または"admin"を格納する)を作り、userからmemberとadminを参照する。 3つのテーブルの関係を考えるとuserがmemberとadminの親になるのが自然なので@の方が良いのかなと思うのですが、 Aの方法だと、railsのポリモーフィック関連で3つのテーブルの関連付けができるため便利です。(@だとuserとmember、userとadminを別々に関連付けするのでmemberとadminに関連性が無くなる) どっちのやり方が適切でしょうか?
|

|