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 阿蜜果 閱讀(33954) 評論(40)  編輯  收藏 所屬分類: Open Source


          FeedBack:
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-06 10:15 | yz
          做得好!!支持!!希望你繼續把這個權限做下去!!呵呵!  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-06 10:17 | 太陽里的雪
          期待著下一步分解!  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-06 10:21 | Samuel
          圖片看不清楚!!  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-06 10:24 | CoderDream
          圖片確實看不清,請更新圖片!  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-06 10:28 | freeman1984
          什么時候換的頭像,怎么感覺不像了  回復  更多評論
            
          # 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 | snsnx
          收藏,學習學習!  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-07 14:48 | guoping
          好象有點亂啊 ,怎么又是用戶和角色又是角色和用戶組啊 .  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-07 16:41 | 簡單就是美
          LZ的設計可以更簡單的  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-07 22:27 | leekiang
          我覺得最麻煩的是如何做到所見即所得,比如有四個按鈕,分別是增刪改查,如何方便的讓沒有增刪改權限的人看不見增刪改這三個按鈕,只能看見"查詢"的按鈕,并且禁止他直接通過url進行增刪改。   回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-07 22:48 | Samuel
          仔細研究了一下,設計者考慮的過于通用。以至于 用戶、組、角色、權限互相之間都存在一個關聯表。這樣對于界面的操作將產生無比的復雜度.當然可以從中取得自己需要的部分。作者可以進一步針對不用的情況分別來討論權限的設計  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-07 22:51 | Samuel
          作者應該考慮一下WEB/Client界面的實現方式。比如上面有人說:如何設置一個功能的增修刪查的權限配置,如果采用上面的權限表,是很復雜。建議做出合適的說明。  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-08 13:24 | 劉甘泉
          權限系統只有適合的,沒有通用的,如果要通用的就基于RBAC就可以了,權限系統涉及的問題太多,效率也是問題,權限的繼承也是問題,所以要根據自己的項目做才好  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-10 16:18 | HL
          我寫的很好,我想要轉載內容,怎么弄
            回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-10 16:23 | 阿蜜果
          @HL
          轉吧,注明出處就行。我沒寫禁止轉載的都可以轉載  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-11 09:42 | HL
          哦,謝謝了  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-11 11:11 | zzuyongp
          和我設計的思路相似,但我的比您的可能還要通用一些,也就更復雜一些.通用和性能\界面操作復雜程度是相互矛盾的統一體,想要尋找到一個合適的平衡點實在太困難,一直都在摸索中.  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-16 14:55 | wayne
          做的太好了,有沒有數據庫模型.pdm也傳上來看看呀  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2007-10-30 16:00 | Lgcheng
          如果不是考慮到通用,你這個設計太復雜了.
          可以更加精簡.
          用戶和權限之間不能直接相關連,權限從角色里繼承.
          如果角色太多則可以從把相同權限的角色分配到用戶組.從用戶組里繼承.  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2007-10-30 16:06 | 阿蜜果
          恩,我也覺得有點繁瑣
          但確實有這種情況存在
          另一種設計是取消組到權限、角色到權限的關聯,這樣會較少設計的復雜性
            回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2008-01-17 11:10 | BoyLong
          如果取消組,只保留角色和用戶會簡單很多。
          我現在就在做這個通用的權限  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2008-05-10 09:43 | yootiger
          還是那句話沒有理解這個組 如果不要組 只保留 用戶和角色之間的關系可以嗎?  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2008-11-11 13:46 | liang
          其實,從本質上說,角色就是組!??!  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2008-11-14 13:56 | libaiyu
          權限管理還有沒有更好的方式?  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2008-11-26 11:52 | leekiang
          如果要簡化,把用戶-權限,組-權限這兩組關系給去掉。
          進一步簡化,把組去掉。
          簡化為"用戶-角色-權限"  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2008-11-28 17:33 | xmlok
          暈了,居然有這么多人想省掉“組”,沒有“組”的權限設計只能用在小項目開發中,系統稍龐大點看你們怎么搞?

          請把組 角色, 用戶 權限 看成對象來理解吧,組是為了統一管理  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2009-03-21 23:25 | anon
          學習中……  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2009-12-07 09:10 | songxj
          組這個概念確實挺好的  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2009-12-30 21:02 | scotty
          這樣設計 用戶加入 組織機構 權限怎么查 ,如何得到用戶加入的是那個組織的權限   回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2009-12-30 21:03 | scotty
          沒有辦法體現出 用戶加入那一個組織中的權限啊  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2010-07-05 21:49 | wx
          提一點意見,我感覺組有時候在一些小型的權限管理中,不是很好用,能不能設計成分兩部分的,就是可以讓用戶選擇是否帶組管理的,我感覺那樣會更好.  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2010-07-05 21:50 | wx
          我感覺組和角色有點重復了,個人意見.  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計[未登錄]
          2010-09-17 10:49 | jack
          可以給個系統看看不?
          想學習一下……
          我的郵箱:zhanmingbo@126.com
            回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2015-04-22 11:21 | lhjgdou@163.com
          我想問一下:
          1、組和角色是否重復了;
          2、基于什么情況下添加組這個對象?便于管理?(如果是出于對用戶的管理的話,組就不應該有權限的屬性,否則,組權限 跟 角色權限 會沖突;如果組權限是從角色權限那里繼承的話,那就重復了);


          不是很理解,智商有限,望樓主解答…………  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2015-07-01 11:51 | 起天大圣
          很不錯  回復  更多評論
            
          # re: 通用權限管理設計篇(二)——數據庫設計
          2015-12-14 11:16 | Winte
          請問下,我的資源怎么和權限對應起來呢,那豈不是還要加個資源表、資源對應角色表、資源對應組表、資源對應用戶表、資源對應權限表?  回復  更多評論
            
          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

                生活將我們磨圓,是為了讓我們滾得更遠——“圓”來如此。
                我的作品:
                玩轉Axure RP  (2015年12月出版)
                

                Power Designer系統分析與建模實戰  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          關注blog

          積分與排名

          • 積分 - 2296320
          • 排名 - 3

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 沅陵县| 双牌县| 呼和浩特市| 安西县| 上蔡县| 白城市| 昭苏县| 宜州市| 定襄县| 双鸭山市| 景泰县| 曲阜市| 郓城县| 江永县| 南江县| 绥阳县| 田东县| 龙岩市| 金湖县| 龙井市| 南郑县| 康马县| 上高县| 柘荣县| 昌吉市| 台中市| 莱州市| 阿克苏市| 山丹县| 郁南县| 星子县| 西乡县| 连城县| 渝北区| 留坝县| 灯塔市| 黎平县| 三原县| 和林格尔县| 南漳县| 合川市|