私たちはmysqlを使用しています。Adjacency List モデル テーブルがあるとします。(正規化されていないことはわかっています。)たとえば、次のようなフィールドを持つ人事テーブル:
Personnel
|employee|boss |salary|
--------------------------
|CEO |null |999999|
|boss1 |CEO |99 |
|boss2 |CEO |99 |
|slvdrvr1|boss1 |9 |
|slvdrvr2|boss1 |9 |
|slave1 |slvdrvr1|1 |
|slave2 |slvdrvr1|1 |
|slave3 |slvdrvr1|1 |
|slave4 |slvdrvr2|1 |
|slave5 |boss2 |1 |
|slave6 |boss2 |1 |
何人かのユーザーがいるテーブルもあります。例えば、
Uers
|userid|role |
----------------
|super1|b1 |
|super2|b2 |
|user1 |sd |
|ruut |admin |
給与情報は機密情報であるとします。そのため、一部のユーザーは特定の支店の給与情報を見ることができます。
たとえば、ロール b1 は、boss1 以下のすべての給与を表示/編集できます。ロール b2 は、boss2 以下のすべての給与を表示/編集できます。ロール sd は、slvdrvr1 および slvdrvr2 以降のすべての給与を表示/編集できます。したがって、これを実装するには、ユーザーと個人の権限テーブルをセットアップする必要があります。
Personnel テーブルは、何万行もある大規模なものです。
私の質問は、簡単に維持およびクエリできるアクセス許可テーブルをどのようにセットアップするかということです。
たとえば、オプション 1: 各個人のロール権限を設定できます。ただし、許可テーブルは巨大になります。
オプション 2: 親ノードのみにロール権限を設定できます。ただし、ユーザーが特定の量のレコードを表示するたびに、設定がある場所まで各レコードのアクセス許可を探す必要があります。
ユーザー数は約数百人。ロールの数が 100 未満です。
不明な点があれば質問してください。前もって感謝します。