単純な ACL システムを設計するときに、次の問題があります。
Person 1
からTeam A
編集可能Item X
Person 1
Team A
からへの転送Team B
Team B
編集できませんでしたItem X
- 歴史的な理由により、まだ
Person 1
編集を許可していますItem X
RDBMS の典型的なモデルは次のとおりです。
Person
テーブルにはテーブルと多対多の関係がありますTeam
- 次のような ACL テーブルがあります。
object_type | object_id | item_type | item_id | deny_or_allow
私が説明したようにチーム間の転送を処理するには
- に追加のルールを追加するだけです
Person 1
か? - いつの日か
Team A
(元メンバーを含む)全員の編集を拒否したらどうなりItemX
ますか? - 人の移動履歴テーブルも保持する必要がありますか?
- したがって、ACL ルールを決定するには、大量のことをトラバーサルする必要があります。
この問題の複雑さは、ACL と人事異動が常に発生するにつれて大きくなります。このためにリレーショナル DB でモデルを設計するベスト プラクティスは何ですか? これらの種類のものの一般的な用語またはトピックはありますか?