2012-05-03 58 views
-3

我有这样如何建立这个建筑师

   User         trial      free 
package1  fullaccess        limited access    very limited access 
       partial access to downloads   previews     expiration 

package2  full access       n/a      n/a 
       full access to assets 

矩阵我将如何创建一个模式,对于这种情况

+4

什么?这没有意义。你在问什么?有些背景会有所帮助。 – Oded

回答

3

你会被具有权限的表提供最好的服务:

Permission (PermissionID varchar) 

(包含诸如“完全访问”,“部分”等等),这将是可用权限的列表。

然后创建包:我可能会结合用户+包刚刚包

Package (PackageID int, PackageName varchar) 

最后填充您的连接表:

PackagePermissions (PackageID int, PermissionID varchar) 

从而给用户包标识,你可以在查询表格转换为授予的权限。

select PermissionID 
from User 
inner join Package 
    on User.PackageID = Package.PackageID 
inner join PackagePermission 
    on Package.PackageID = PackagePermission.PacakgeID 

这让你改变封装随着时间的推移,加上包装,方便地添加新的权限,同时保持所有的用户的管理,以最低限度的能力。