krokodilkoが彼のコメントに書いたように、それはあなたが必要とする柔軟性のレベルに依存します。
私は次のように私のクライアントの1つに役割ベースの許可を実装しました:
- ユーザー(ユーザーID(PK)、ユーザー名(一意)、パスワード(ソルトおよびハッシュ! )、名、姓、電話番号など')
- 役割(役割ID(PK)、役割名(一意)、役割の説明)
- 権限(権限ID(PK)、権限名(一意))-タブ/画面/アクションはここに表示されます
- ユーザーからロール(ユーザーID、ロールID)-PKは両方の列を組み合わせたものです
- 権限への役割(役割ID、権限ID)-PKは両方の列を組み合わせたものです
しかし、私の要件は可能な限り柔軟であるということでした。それはまだ成長しているシステムです(6年と数えています)。
多くのアプリケーションでは、私の場合のように多対多ではなく、1対多の関係としてユーザーに役割を持たせることができると思いますが、どのアプリケーションでも、アクセス許可や役割をアクセス許可にハードコーディングすることはしません。
>詳細な説明:役割ベースのセキュリティデータベース設計 #私は何を知っていますか?