目的 最近仕事で権限管理の設計をやっていたのだが、設計でかなりはまってしまった。 今後ははまらないように、DB設計や判断基準をまとめておく。 ベースとなるパターン ユーザとロールは多対1で、ロールとアビリティは多対多に関連している。 権限管理やりましょうという場合にはこれにしておけば大抵の複雑な要求には対応できる。 もしユーザが増えてロールとアビリティの管理が複雑になってきても、DB管理なのである程度自由にやりことができる。 ただし、ちとファーストステップとしてはやりすぎか。 ユーザ-ロールが多対多パターン 前の例に加え、ユーザもロールを多数持つパターン。各権限が互いに素に近い状態、例えばカスタマーサポートとマーケティング、そのどちらも担当する人みたいなケースが有る場合に使える。 アプリケーションが大きくなっていて、権限の数も数十くらいになってきた場合はこれか。 直接アビリティパターン ユ