关于设计:
答案 0 :(得分:10)
最简单的方法如下:
用户:包含您的用户,姓名和ID列表
SecurityGroups :包含安全组列表,例如“Sales”,“Marketing”。 (id,安全组名称)
页面:包含您的网页列表(ID,网页名称)
UserSecurityGroups :( userId,securityGroupId)。已分配权利的交叉参考表
PageSecurityGroups :( pageId,securityGroupId,允许)。允许访问该页面的安全组成员身份的交叉引用表。
对于每个页面加载,您将检查特定页面的PageSecurityGroups表是否包含用户具有的组访问权限。
显然,可能会有更多内容,例如将页面分配给特定用户,但您可以根据需要对应用程序进行推断。
答案 1 :(得分:3)
由于“每个网页通常是一组网页的一部分...”,最好像“每个网页总是部分一样一组网页......“ - 即使有些团体只有1名成员!
这将您的数据模型简化为:
用户--->用户组< ------->页面组< ---页面