用户—角色—许可的用户验证
此设计采用“用户—角色—许可”的设计思想,即:一个用户拥有多个角色、一个角色拥有多个许可、一个角色拥有多个许可。这种设计方式很方便扩展您系统的权限管理模块。以下给出了基本框架的数据表结构设计,您可以在此基础上扩展以方便和您的应用结合。本库设计采用MS SQL Server 2000数据库系统,所以推荐您使用存储过程进一步实现系统功能,在这里存储过程的代码就不写了
用到的数据表
英文名
|
中文名
|
Accounts_Permissions
|
许可表
|
Accounts_RolePermissions
|
角色许可表
|
Accounts_Roles
|
角色表
|
Accounts_UserRoles
|
用户角色表
|
Accounts_Users
|
用户表
|
Accounts_UserType
|
用户类型表
|
表详细设计
表名:Accounts_Permissions 许可表
|
||||||||
字段名
|
主键
|
类型
|
长度
|
允许空
|
默认值
|
描述
|
||
PermissionId
|
PK
|
Int
|
4
|
N
|
|
许可编号(手动编码)
|
||
PermissionName
|
|
Nvarchar
|
50
|
N
|
|
许可名称(唯一)
|
||
CategoryId
|
|
Int
|
4
|
N
|
|
所属类别(模块)名称
|
||
表名:Accounts_RolePermissions 角色许可表
|
||||||||
字段名
|
主键
|
类型
|
长度
|
允许空
|
默认值
|
描述
|
||
RoleId
|
PK
|
Int
|
4
|
N
|
|
角色编号
|
||
PermissionId
|
PK
|
Int
|
4
|
N
|
|
许可编号
|
||
表名:Accounts_Roles 角色表
|
||||||||
字段名
|
主键
|
类型
|
长度
|
允许空
|
默认值
|
描述
|
||
RoleId
|
PK
|
Int
|
4
|
N
|
|
角色编号
|
||
RoleName
|
|
Nvarchar
|
50
|
N
|
|
角色名称
|
||
表名:Accounts_UserRoles 用户角色表
|
||||||||
字段名
|
主键
|
类型
|
长度
|
允许空
|
默认值
|
描述
|
||
UserId
|
PK
|
Bigint
|
8
|
N
|
|
用户编号
|
||
RoleId
|
PK
|
Int
|
4
|
N
|
|
角色编号
|
||
表名:Accounts_Users 用户表
|
||||||||
字段名
|
主键
|
类型
|
长度
|
允许空
|
默认值
|
描述
|
||
UserId
|
PK
|
Bigint
|
8
|
N
|
|
用户编号(自增)
|
||
UserName
|
|
Nvarchar
|
50
|
N
|
|
用户名(登录用,唯一)
|
||
NickName
|
|
Nvarchar
|
50
|
N
|
|
真实姓名(昵称)
|
||
Email
|
|
Nvarchar
|
50
|
N
|
|
电子邮件
|
||
Password
|
|
Nvarchar
|
50
|
N
|
|
密码(采用SHA1加密,加密后为40位)
|
||
UserTypeId
|
|
Int
|
4
|
N
|
|
用户类型编号
|
||
ActiveStatus
|
|
Bit
|
1
|
N
|
|
开通状态(0à关闭;1à开通)
|
||
表名:Accounts_UserType 用户类型表
|
||||||||
字段名
|
主键
|
类型
|
长度
|
允许空
|
默认值
|
描述
|
||
UserTypeId
|
PK
|
Int
|
4
|
N
|
|
类型编号
|
||
UserTypeName
|
|
Nvarchar
|
50
|
N
|
|
类型名称
|