-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

1 回答 1

3

最好有一个权限表:

Permission (PermissionID varchar)

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

然后创建包:我可能会将 User+Package 组合为包

Package (PackageID int, PackageName varchar)

最后填充您的连接表:

PackagePermissions (PackageID int, PermissionID varchar)

为您的用户提供 PackageID,您可以跨表查询授予的权限。

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

这使您能够随着时间的推移更改包、添加包和轻松添加新权限,同时最大限度地减少对用户的管理。

于 2012-05-03T19:11:16.440 回答