認可周りを表現するための設計。「ユーザー」と「許可」の二つの概念をテーブル設計に落とし込む。
Discretionaly Access Controll: 任意アクセス制御。「ユーザー」と「許可」をそれぞれのテーブルusers, permissionsとし、誰がどの許可を持っているかを関連テーブルで管理する。

user_permissionsにレコードが20行必要。Roll Based Access Controll: ロールベースアクセス制御。「ユーザー」と「許可」意外に、「役割」という概念も加える(roleテーブル)。許可:役割の関連テーブルと、ユーザー:役割の関連テーブルを作る。

user_rolesに1行追加するだけでいい。role_permissionsを変更するだけで、その役割のすべてのユーザーに変更を反映することができる。