ユーザー > オブジェクトのアクセス許可の理想的な構造は何でしょうか。
一般的なアクセス許可、またはユーザーがアクセスできるセクションusers
、userGroups
およびuserGroupRelations
またはその性質の何かで構成される関連する投稿をたくさん見てきました。
私のシステムには、作成できるさまざまなオブジェクトが多数あり、それぞれをオンまたはオフにできる必要があります。たとえば、グループとサブグループを持つパスワード マネージャーを考えてみましょう。
Group 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Group 9
Group 10
各グループには一連のパスワードを含めることができます。ユーザーには、任意のグループに対する読み取り、書き込み、編集、および削除のアクセス許可を与えることができます。いつでも追加のグループを作成できます。
誰かがグループへのアクセス許可を持っている場合、私は彼にすべてのサブグループへのアクセス許可を持たせるか、そのグループだけに制限することができるはずです.
私の現在の考えは、ユーザーテーブルを作成してから、次のような列を持つアクセス許可テーブルを作成することです。
permission_id (int) PRIMARY_KEY
user_id (int) INDEX
object_id (int) INDEX
type (varchar) INDEX
admin (bool)
read (bool)
write (bool)
edit (bool)
delete (bool)
これは過去に機能していましたが、私が構築している新しいシステムは迅速に拡張できる必要があり、これが最適な構造であるかどうかはわかりません。また、グループのすべてのサブグループ権限を持つ人を持つという考えをより困難にします.
ユーザー/管理者の役割については別の表があります。これは、制御できるグループの下でユーザーの権限を変更できることを意味します。
それで、質問として、上記の構造を使用する必要がありますか?または、誰かが私をより良い方向に向けることができますか?
編集
別の方法として、すべてのタイプのオブジェクトに対して権限テーブルを作成する方法があります。