什么是网站部分的安全/权限的最佳设计 - 数据表明智?

5 database-design

关于设计:

  1. 每个用户都是SOME组的一部分.(销售,零件,棒球运动员,等等)
  2. 每个"网页"都会被一群人看到.(获得特别许可的销售+零件+会计乔)
  3. 每个网页通常都是某个级别的一组网页的一部分 - 您可能会尝试将这些网页保留在某个目录中,或者从一些前缀开始但不总是 - 即当有人加入销售时您不想指定 - 他们看看SalesPage1,SalesPage2,SalesPage3,SalesPartsPage1等.

Not*_*tMe 10

最简单的方法如下:

用户:包含用户,名称和ID的列表

SecurityGroups:包含安全组列表,例如"Sales","Marketing".(id,安全组名称)

页面:包含您的页面列表(ID,页面名称)

UserSecurityGroups:(userId,securityGroupId).已分配权利的交叉参考表

PageSecurityGroups :( pageId,securityGroupId,允许).允许访问该页面的安全组成员身份的交叉引用表.

对于每个页面加载,您将检查特定页面的PageSecurityGroups表是否包含用户具有的组访问权限.

显然,可能还有更多内容,例如将页面分配给特定用户,但您可以根据需要对应用程序进行推断.


Ton*_*ews 3

由于“每个网页通常都是一组网页的一部分......”,最好的表现就好像“每个网页总是组网页的一部分......” - 即使某些组只会有1名会员!

这将您的数据模型简化为:

用户 ---> 用户组 <--------> 页面组 <--- 页面