通用权限管理设计篇(二)——数据库设计
2008-04-15 13:26
127 查看
理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于N对N的 关系,一般需要加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少需要十张表,分别为:权限表、用户表、角色表、组表、用户权限关联表、用 户角色关联表、角色权限关联表、组权限关联表、组角色关联表、用户属组关联表。当然还可能引出一些相关的表。下面让我们在PowerDesigner中画出各表吧。
各表及其关系如下:
1. 用户表
2. 角色表
3. 权限表
4. 组表
5. 角色权限表
6. 组权限表
7. 组角色表
8. 用户权限表
9. 用户角色表
10. 用户组表
11. 组织表
12. 操作日志表
各表及其关系如下:
1. 用户表
用户表(TUser) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | tu_id | bigint | pk, not null |
所属组织 | to_id | bigint | fk, not null |
登录帐号 | login_name | varchar(64) | not null |
用户密码 | password | varchar(64) | not null |
用户姓名 | vsername | varchar(64) | not null |
手机号 | mobile | varchar(20) | |
电子邮箱 | email | varchar(64) | |
创建时间 | gen_time | datetime | not null |
登录时间 | login_time | datetime | |
上次登录时间 | last_login_time | datetime | |
登录次数 | count | bigint | not null |
角色表(TRole) | |||
字段名称 | 字段 | 类型 | 备注 |
角色ID | tr_id | bigint | pk, not null |
父级角色ID | parent_tr_id | bigint | not null |
角色名称 | role_name | varchar(64) | not null |
创建时间 | gen_time | datetime | not null |
角色描述 | description | varchar(200) |
权限表(TRight) | |||
字段名称 | 字段 | 类型 | 备注 |
权限ID | tr_id | bigint | pk, not null |
父权限 | parent_tr_id | bigint | not null |
权限名称 | right_name | varchar(64) | not null |
权限描述 | description | varchar(200) |
组表(TGroup) | |||
字段名称 | 字段 | 类型 | 备注 |
组ID | tg_id | bigint | pk, not null |
组名称 | group_name | varchar(64) | not null |
父组 | parent_tg_id | bigint | not null |
创建时间 | gen_time | datetime | not null |
组描述 | description | varchar(200) |
角色权限表(TRoleRightRelation) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | trr_id | bigint | pk, not null |
角色 | Role_id | bigint | fk, not null |
权限 | right_id | bigint | fk, not null |
权限类型 | right_type | int | not null(0:可访问,1:可授权) |
组权限表(TGroupRightRelation) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | tgr_id | bigint | pk, not null |
组 | tg_id | bigint | fk, not null |
权限 | tr_id | bigint | fk, not null |
权限类型 | right_type | int | not null(0:可访问,1:可授权) |
组角色表(TGroupRoleRelation) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | tgr_id | bigint | pk, not null |
组 | tg_id | bigint | fk, not null |
角色 | tr_id | bigint | pk, not null |
用户权限表(TUserRightRelation) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | tur_id | bigint | pk, not null |
用户 | tu_id | bigint | fk, not null |
权限 | tr_id | bigint | fk, not null |
权限类型 | right_type | int | not null(0:可访问,1:可授权) |
用户角色表(TUserRoleRelation) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | tur_id | bigint | pk, not null |
用户 | tu_id | bigint | fk, not null |
角色 | tr_id | bigint | fk, not null |
用户组表(TUserGroupRelation) | |||
字段名称 | 字段 | 类型 | 备注 |
记录标识 | tug_id | bigint | pk, not null |
用户 | tu_id | bigint | fk, not null |
组 | tg_id | bigint | fk, not null |
组织表(TOrganization) | |||
字段名称 | 字段 | 类型 | 备注 |
组织id | to_id | bigint | pk, not null |
父组 | parent_to_id | bigint | not null |
组织名称 | org_name | varchar(64) | not null |
创建时间 | gen_time | datetime | not null |
组织描述 | description | varchar(200) |
操作日志表(TLog) | |||
字段名称 | 字段 | 类型 | 备注 |
日志ID | log_id | bigint | pk, not null |
操作类型 | op_type | int | not null |
操作内容 | content | varchar(200) | not null |
操作人 | tu_id | bigint | fk, not null |
操作时间 | gen_time | datetime | not null |
相关文章推荐
- 通用权限管理设计篇(二)——数据库设计
- 通用权限管理设计篇(二)——数据库设计
- 通用权限管理设计篇(二)——数据库设计
- jdbc 通过模板的设计模式 封装基本数据库操作
- 数据库的跨平台设计
- 权限模块数据库表结构设计
- [学习] 设计一个优秀的数据库
- 数据库优化设计方案
- 不定字段数目的数据库表设计和数据结构
- 数据库设计方法、规范与技巧
- 如何设计动态(不定)字段的产品数据库表?--淘宝多产品属性字段设计方法
- 浅谈数据库设计技巧(下)
- 公交车路线查询系统后台数据库设计——查询算法
- 010 数据库设计 - bos
- 基于JDBC的数据库连接池技术研究与设计(转)
- [导入]数据库设计技巧系列(五)——各种小技巧
- 博客系统的数据库设计
- 20个数据库设计最佳实践
- 数据库设计经验 [转]
- 数据库设计技巧14则