I have seen a few implementation of Row-Level ACL using a Permission table having a structure such as
User_Id
Subject_Class
Subject_Id
Permission_Id
where Permission_Id is (Read, Write, Update, Delete, Approve, etc.)
I was wondering if there is any benefit to describe a relationship (Relationship_Id) with the data instead of describing a permission.
The idea we would to describe that a user is an "Owner", "Approver", "Reviewer", "Public Viewer", etc.
This relationship would then define a set of permissions. This could reduce the size of the Permission.
Any thoughts on this methodology?