私は、基本的なログイン、製品の注文、他のユーザーの管理など、各ユーザーが複数の役割/権限を持つことができる Web サイトに取り組んでいます。この上にストアがあり、各ストアには複数のユーザーが管理できます。各ストアには、独自の権限セットもあります。
私は混乱しており、これをデータベースで表現する最善の方法がわかりません。今、私は考えています:
ユーザー ロール users_roles ストア store_users
しかし、ストアの個別の権限を追跡するために、stores_roles テーブルと store_users_roles テーブルも用意する必要がありますか?それとも、ロールを単一の「ロール」テーブルに限定しておく必要がありますか?
当初はロール テーブルを 1 つだけ持つことを考えていましたが、複数のストアでロールを持つユーザーはどうなるでしょうか。つまり、ユーザーに「ストア製品の更新」などの役割が与えられている場合、これがどのストアを参照しているかを判断する何らかの方法が必要になります。store_users_roles テーブルは、store_id フィールドを持つことでこれを修正できます。したがって、ユーザーは、ストア #42 の「ストア製品の更新」と「ストア製品の削除」、およびストア #84 の「ストア製品の更新」のみを持つことができます。
ここで意味を成していることを願っています。
編集
みんな情報ありがとう。どうやらやりたいことがあるようです。これは私が取り組んでいる単なる楽しいプロジェクトですが、RBAC は常に私がもっと理解したいと思っていたものです。