posts - 297,  comments - 1618,  trackbacks - 0

     国庆前整的通用权限设计的数据库初步设计部分,现在贴上来。

理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于nn的关系,一般需要加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少需要十张表,分别为:权限表、用户表、角色表、组表、用户权限关联表、用户角色关联表、角色权限关联表、组权限关联表、组角色关联表、用户属组关联表。当然还可能引出一些相关的表。下面让我们在powerdesigner中画出各表吧。

       各表及其关系如下:


      

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

2.       角色表

角色表(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)

3.       权限表

权限表(tright

字段名称

字段

类型

备注

权限id

tr_id

bigint

pk, not null

父权限

parent_tr_id

bigint

not null

权限名称

right_name

varchar(64)

not null

权限描述

description

varchar(200)

4.       组表

组表(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)

5.       角色权限表

角色权限表(trolerightrelation

字段名称

字段

类型

备注

记录标识

trr_id

bigint

pk, not null

角色

role_id

bigint

fk, not null

权限

right_id

bigint

fk, not null

权限类型

right_type

int

not null0:可访问,1:可授权)

6.       组权限表

组权限表(tgrouprightrelation

字段名称

字段

类型

备注

记录标识

tgr_id

bigint

pk, not null

tg_id

bigint

fk, not null

权限

tr_id

bigint

fk, not null

权限类型

right_type

int

not null0:可访问,1:可授权)

7.       组角色表

组角色表(tgrouprolerelation

字段名称

字段

类型

备注

记录标识

tgr_id

bigint

pk, not null

tg_id

bigint

fk, not null

角色

tr_id

bigint

pk, not null

8.       用户权限表

用户权限表(tuserrightrelation

字段名称

字段

类型

备注

记录标识

tur_id

bigint

pk, not null

用户

tu_id

bigint

fk, not null

权限

tr_id

bigint

fk, not null

权限类型

right_type

int

not null0:可访问,1:可授权)

9.       用户角色表

用户角色表(tuserrolerelation

字段名称

字段

类型

备注

记录标识

tur_id

bigint

pk, not null

用户

tu_id

bigint

fk, not null

角色

tr_id

bigint

fk, not null

10.   用户组表

用户组表(tusergrouprelation

字段名称

字段

类型

备注

记录标识

tug_id

bigint

pk, not null

用户

tu_id

bigint

fk, not null

tg_id

bigint

fk, not null

11.   组织表

组织表(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)

12.   操作日志表

操作日志表(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

posted on 2007-10-06 09:37 阿蜜果 阅读(33731) 评论(40)     所属分类: open source


feedback:
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 10:15 |
做得好!!支持!!希望你继续把这个权限做下去!!呵呵!  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-06 10:17 |
期待着下一步分解!  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-06 10:21 |
图片看不清楚!!  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 10:24 | coderdream
图片确实看不清,请更新图片!  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 10:28 |
什么时候换的头像,怎么感觉不像了  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 10:42 | 阿蜜果
@samuel
@coderdream
图片已经换了,清晰点了

@freeman1984
昨天换的哈,海风吹的,哈哈,头发乱了点,别见怪
  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 11:54 | 千里冰封
真是一个可爱的女生  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 11:57 |
很好,很强大  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-06 19:55 |
收藏,学习学习!  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-07 14:48 |
好象有点乱啊 ,怎么又是用户和角色又是角色和用户组啊 .  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-07 16:41 |
lz的设计可以更简单的  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-07 21:08 |
值 得参考  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-07 22:27 | leekiang
我觉得最麻烦的是如何做到所见即所得,比如有四个按钮,分别是增删改查,如何方便的让没有增删改权限的人看不见增删改这三个按钮,只能看见"查询"的按钮,并且禁止他直接通过url进行增删改。   回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-07 22:48 |
仔细研究了一下,设计者考虑的过于通用。以至于 用户、组、角色、权限互相之间都存在一个关联表。这样对于界面的操作将产生无比的复杂度.当然可以从中取得自己需要的部分。作者可以进一步针对不用的情况分别来讨论权限的设计  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-07 22:51 |
作者应该考虑一下web/client界面的实现方式。比如上面有人说:如何设置一个功能的增修删查的权限配置,如果采用上面的权限表,是很复杂。建议做出合适的说明。  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-08 13:24 |
权限系统只有适合的,没有通用的,如果要通用的就基于rbac就可以了,权限系统涉及的问题太多,效率也是问题,权限的继承也是问题,所以要根据自己的项目做才好  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-10 16:18 |
我写的很好,我想要转载内容,怎么弄
  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-10 16:23 | 阿蜜果
@hl
转吧,注明出处就行。我没写禁止转载的都可以转载  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-11 09:42 |
哦,谢谢了  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-11 11:11 |
和我设计的思路相似,但我的比您的可能还要通用一些,也就更复杂一些.通用和性能\界面操作复杂程度是相互矛盾的统一体,想要寻找到一个合适的平衡点实在太困难,一直都在摸索中.  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-16 14:55 |
做的太好了,有沒有数据库模型.pdm也傳上來看看呀  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2007-10-30 16:00 |
如果不是考虑到通用,你这个设计太复杂了.
可以更加精简.
用户和权限之间不能直接相关连,权限从角色里继承.
如果角色太多则可以从把相同权限的角色分配到用户组.从用户组里继承.  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2007-10-30 16:06 | 阿蜜果
恩,我也觉得有点繁琐
但确实有这种情况存在
另一种设计是取消组到权限、角色到权限的关联,这样会较少设计的复杂性
  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2008-01-17 11:10 |
如果取消组,只保留角色和用户会简单很多。
我现在就在做这个通用的权限  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2008-05-10 09:43 |
还是那句话没有理解这个组 如果不要组 只保留 用户和角色之间的关系可以吗?  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2008-11-11 13:46 |
其实,从本质上说,角色就是组!!!  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2008-11-14 13:56 |
权限管理还有没有更好的方式?  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2008-11-26 11:52 | leekiang
如果要简化,把用户-权限,组-权限这两组关系给去掉。
进一步简化,把组去掉。
简化为"用户-角色-权限"  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2008-11-28 17:33 |
晕了,居然有这么多人想省掉“组”,没有“组”的权限设计只能用在小项目开发中,系统稍庞大点看你们怎么搞?

请把组 角色, 用户 权限 看成对象来理解吧,组是为了统一管理  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2009-03-21 23:25 |
学习中……  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2009-12-07 09:10 |
组这个概念确实挺好的  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2009-12-15 11:17 |
本來就是要這樣設計的。與我想的一樣。

另希望把 權限表那一塊分析出來
 比如系統資源,操作類型等

哎,要說這個權限管理做完美,真是個麻煩的事
 兄弟還沒有考慮功能權限與數據權限控制  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2009-12-30 21:02 |
这样设计 用户加入 组织机构 权限怎么查 ,如何得到用户加入的是那个组织的权限   回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2009-12-30 21:03 |
没有办法体现出 用户加入那一个组织中的权限啊  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2010-07-05 21:49 |
提一点意见,我感觉组有时候在一些小型的权限管理中,不是很好用,能不能设计成分两部分的,就是可以让用户选择是否带组管理的,我感觉那样会更好.  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2010-07-05 21:50 |
我感觉组和角色有点重复了,个人意见.  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计[未登录]
2010-09-17 10:49 |
可以给个系统看看不?
想学习一下……
我的邮箱:zhanmingbo@126.com
  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2015-04-22 11:21 |
我想问一下:
1、组和角色是否重复了;
2、基于什么情况下添加组这个对象?便于管理?(如果是出于对用户的管理的话,组就不应该有权限的属性,否则,组权限 跟 角色权限 会冲突;如果组权限是从角色权限那里继承的话,那就重复了);


不是很理解,智商有限,望楼主解答…………  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2015-07-01 11:51 |
很不错  回复  
  
# re: 通用权限管理设计篇(二)——数据库设计
2015-12-14 11:16 |
请问下,我的资源怎么和权限对应起来呢,那岂不是还要加个资源表、资源对应角色表、资源对应组表、资源对应用户表、资源对应权限表?  回复  
  

只有注册用户后才能发表评论。


网站导航:
              
 
2007年10月
3012345
7101113
141516181920
2122252627
28293031123
45678910

      生活将我们磨圆,是为了让我们滚得更远——“圆”来如此。
      我的作品:
        (2015年12月出版)
      

        (2015年7月出版)
      
        (2010年5月出版)
     

留言簿(261)

通用权限管理设计篇(二)——数据库设计 -凯发k8网页登录

积分与排名

  • 积分 - 2268582
  • 排名 - 3

最新评论

阅读排行榜

评论排行榜

网站地图