posts - 297,  comments - 1618,  trackbacks - 0

               國(guó)慶前整的通用權(quán)限設(shè)計(jì)的數(shù)據(jù)庫(kù)初步設(shè)計(jì)部分,現(xiàn)在貼上來(lái)。

          理清了對(duì)象關(guān)系之后,讓我們接著來(lái)進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)。在數(shù)據(jù)庫(kù)建模時(shí),對(duì)于N對(duì)N的關(guān)系,一般需要加入一個(gè)關(guān)聯(lián)表來(lái)表示關(guān)聯(lián)的兩者的關(guān)系。初步估計(jì)一下,本系統(tǒng)至少需要十張表,分別為:權(quán)限表、用戶表、角色表、組表、用戶權(quán)限關(guān)聯(lián)表、用戶角色關(guān)聯(lián)表、角色權(quán)限關(guān)聯(lián)表、組權(quán)限關(guān)聯(lián)表、組角色關(guān)聯(lián)表、用戶屬組關(guān)聯(lián)表。當(dāng)然還可能引出一些相關(guān)的表。下面讓我們?cè)?/span>PowerDesigner中畫出各表吧。

                 各表及其關(guān)系如下:


                

          1.       用戶表

          用戶表(TUser

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          tu_id

          bigint

          pk, not null

          所屬組織

          to_id

          bigint

          fk, not null

          登錄帳號(hào)

          login_name

          varchar(64)

          not null

          用戶密碼

          password

          varchar(64)

          not null

          用戶姓名

          vsername

          varchar(64)

          not null

          手機(jī)號(hào)

          mobile

          varchar(20)

          電子郵箱

          email

          varchar(64)

          創(chuàng)建時(shí)間

          gen_time

          datetime

          not null

          登錄時(shí)間

          login_time

          datetime

          上次登錄時(shí)間

          last_login_time

          datetime

          登錄次數(shù)

          count

          bigint

          not null

          2.       角色表

          角色表(TRole

          字段名稱

          字段

          類型

          備注

          角色ID

          tr_id

          bigint

          pk, not null

          父級(jí)角色ID

          parent_tr_id

          bigint

          not null

          角色名稱

          role_name

          varchar(64)

          not null

          創(chuàng)建時(shí)間

          gen_time

          datetime

          not null

          角色描述

          description

          varchar(200)

          3.       權(quán)限表

          權(quán)限表(TRight

          字段名稱

          字段

          類型

          備注

          權(quán)限ID

          tr_id

          bigint

          pk, not null

          父權(quán)限

          parent_tr_id

          bigint

          not null

          權(quán)限名稱

          right_name

          varchar(64)

          not null

          權(quán)限描述

          description

          varchar(200)

          4.       組表

          組表(TGroup

          字段名稱

          字段

          類型

          備注

          ID

          tg_id

          bigint

          pk, not null

          組名稱

          group_name

          varchar(64)

          not null

          父組

          parent_tg_id

          bigint

          not null

          創(chuàng)建時(shí)間

          gen_time

          datetime

          not null

          組描述

          description

          varchar(200)

          5.       角色權(quán)限表

          角色權(quán)限表(TRoleRightRelation

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          trr_id

          bigint

          pk, not null

          角色

          Role_id

          bigint

          fk, not null

          權(quán)限

          right_id

          bigint

          fk, not null

          權(quán)限類型

          right_type

          int

          not null0:可訪問(wèn),1:可授權(quán))

          6.       組權(quán)限表

          組權(quán)限表(TGroupRightRelation

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          tgr_id

          bigint

          pk, not null

          tg_id

          bigint

          fk, not null

          權(quán)限

          tr_id

          bigint

          fk, not null

          權(quán)限類型

          right_type

          int

          not null0:可訪問(wèn),1:可授權(quán))

          7.       組角色表

          組角色表(TGroupRoleRelation

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          tgr_id

          bigint

          pk, not null

          tg_id

          bigint

          fk, not null

          角色

          tr_id

          bigint

          pk, not null

          8.       用戶權(quán)限表

          用戶權(quán)限表(TUserRightRelation

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          tur_id

          bigint

          pk, not null

          用戶

          tu_id

          bigint

          fk, not null

          權(quán)限

          tr_id

          bigint

          fk, not null

          權(quán)限類型

          right_type

          int

          not null0:可訪問(wèn),1:可授權(quán))

          9.       用戶角色表

          用戶角色表(TUserRoleRelation

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          tur_id

          bigint

          pk, not null

          用戶

          tu_id

          bigint

          fk, not null

          角色

          tr_id

          bigint

          fk, not null

          10.   用戶組表

          用戶組表(TUserGroupRelation

          字段名稱

          字段

          類型

          備注

          記錄標(biāo)識(shí)

          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

          創(chuàng)建時(shí)間

          gen_time

          datetime

          not null

          組織描述

          description

          varchar(200)

          12.   操作日志表

          操作日志表(TLog

          字段名稱

          字段

          類型

          備注

          日志ID

          log_id

          bigint

          pk, not null

          操作類型

          op_type

          int

          not null

          操作內(nèi)容

          content

          varchar(200)

          not null

          操作人

          tu_id

          bigint

          fk, not null

          操作時(shí)間

          gen_time

          datetime

          not null

          posted on 2007-10-06 09:37 阿蜜果 閱讀(33928) 評(píng)論(40)  編輯  收藏 所屬分類: Open Source


          FeedBack:
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 10:15 | yz
          做得好!!支持!!希望你繼續(xù)把這個(gè)權(quán)限做下去!!呵呵!  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-06 10:17 | 太陽(yáng)里的雪
          期待著下一步分解!  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-06 10:21 | Samuel
          圖片看不清楚!!  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 10:24 | CoderDream
          圖片確實(shí)看不清,請(qǐng)更新圖片!  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 10:28 | freeman1984
          什么時(shí)候換的頭像,怎么感覺(jué)不像了  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 10:42 | 阿蜜果
          @Samuel
          @CoderDream
          圖片已經(jīng)換了,清晰點(diǎn)了

          @freeman1984
          昨天換的哈,海風(fēng)吹的,哈哈,頭發(fā)亂了點(diǎn),別見怪
            回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 11:54 | 千里冰封
          真是一個(gè)可愛(ài)的女生  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 11:57 | 瀟笑
          很好,很強(qiáng)大  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-06 19:55 | snsnx
          收藏,學(xué)習(xí)學(xué)習(xí)!  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-07 14:48 | guoping
          好象有點(diǎn)亂啊 ,怎么又是用戶和角色又是角色和用戶組啊 .  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-07 16:41 | 簡(jiǎn)單就是美
          LZ的設(shè)計(jì)可以更簡(jiǎn)單的  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-07 22:27 | leekiang
          我覺(jué)得最麻煩的是如何做到所見即所得,比如有四個(gè)按鈕,分別是增刪改查,如何方便的讓沒(méi)有增刪改權(quán)限的人看不見增刪改這三個(gè)按鈕,只能看見"查詢"的按鈕,并且禁止他直接通過(guò)url進(jìn)行增刪改。   回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-07 22:48 | Samuel
          仔細(xì)研究了一下,設(shè)計(jì)者考慮的過(guò)于通用。以至于 用戶、組、角色、權(quán)限互相之間都存在一個(gè)關(guān)聯(lián)表。這樣對(duì)于界面的操作將產(chǎn)生無(wú)比的復(fù)雜度.當(dāng)然可以從中取得自己需要的部分。作者可以進(jìn)一步針對(duì)不用的情況分別來(lái)討論權(quán)限的設(shè)計(jì)  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-07 22:51 | Samuel
          作者應(yīng)該考慮一下WEB/Client界面的實(shí)現(xiàn)方式。比如上面有人說(shuō):如何設(shè)置一個(gè)功能的增修刪查的權(quán)限配置,如果采用上面的權(quán)限表,是很復(fù)雜。建議做出合適的說(shuō)明。  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-08 13:24 | 劉甘泉
          權(quán)限系統(tǒng)只有適合的,沒(méi)有通用的,如果要通用的就基于RBAC就可以了,權(quán)限系統(tǒng)涉及的問(wèn)題太多,效率也是問(wèn)題,權(quán)限的繼承也是問(wèn)題,所以要根據(jù)自己的項(xiàng)目做才好  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-10 16:18 | HL
          我寫的很好,我想要轉(zhuǎn)載內(nèi)容,怎么弄
            回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-10 16:23 | 阿蜜果
          @HL
          轉(zhuǎn)吧,注明出處就行。我沒(méi)寫禁止轉(zhuǎn)載的都可以轉(zhuǎn)載  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-11 09:42 | HL
          哦,謝謝了  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-11 11:11 | zzuyongp
          和我設(shè)計(jì)的思路相似,但我的比您的可能還要通用一些,也就更復(fù)雜一些.通用和性能\界面操作復(fù)雜程度是相互矛盾的統(tǒng)一體,想要尋找到一個(gè)合適的平衡點(diǎn)實(shí)在太困難,一直都在摸索中.  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-16 14:55 | wayne
          做的太好了,有沒(méi)有數(shù)據(jù)庫(kù)模型.pdm也傳上來(lái)看看呀  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2007-10-30 16:00 | Lgcheng
          如果不是考慮到通用,你這個(gè)設(shè)計(jì)太復(fù)雜了.
          可以更加精簡(jiǎn).
          用戶和權(quán)限之間不能直接相關(guān)連,權(quán)限從角色里繼承.
          如果角色太多則可以從把相同權(quán)限的角色分配到用戶組.從用戶組里繼承.  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2007-10-30 16:06 | 阿蜜果
          恩,我也覺(jué)得有點(diǎn)繁瑣
          但確實(shí)有這種情況存在
          另一種設(shè)計(jì)是取消組到權(quán)限、角色到權(quán)限的關(guān)聯(lián),這樣會(huì)較少設(shè)計(jì)的復(fù)雜性
            回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2008-01-17 11:10 | BoyLong
          如果取消組,只保留角色和用戶會(huì)簡(jiǎn)單很多。
          我現(xiàn)在就在做這個(gè)通用的權(quán)限  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2008-05-10 09:43 | yootiger
          還是那句話沒(méi)有理解這個(gè)組 如果不要組 只保留 用戶和角色之間的關(guān)系可以嗎?  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2008-11-11 13:46 | liang
          其實(shí),從本質(zhì)上說(shuō),角色就是組!!!  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2008-11-14 13:56 | libaiyu
          權(quán)限管理還有沒(méi)有更好的方式?  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2008-11-26 11:52 | leekiang
          如果要簡(jiǎn)化,把用戶-權(quán)限,組-權(quán)限這兩組關(guān)系給去掉。
          進(jìn)一步簡(jiǎn)化,把組去掉。
          簡(jiǎn)化為"用戶-角色-權(quán)限"  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2008-11-28 17:33 | xmlok
          暈了,居然有這么多人想省掉“組”,沒(méi)有“組”的權(quán)限設(shè)計(jì)只能用在小項(xiàng)目開發(fā)中,系統(tǒng)稍龐大點(diǎn)看你們?cè)趺锤悖?

          請(qǐng)把組 角色, 用戶 權(quán)限 看成對(duì)象來(lái)理解吧,組是為了統(tǒng)一管理  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2009-03-21 23:25 | anon
          學(xué)習(xí)中……  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2009-12-07 09:10 | songxj
          組這個(gè)概念確實(shí)挺好的  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2009-12-15 11:17 | 蝸牛啃
          本來(lái)就是要這樣設(shè)計(jì)的。與我想的一樣。

          另希望把 權(quán)限表那一塊分析出來(lái)
           比如系統(tǒng)資源,操作類型等

          哎,要說(shuō)這個(gè)權(quán)限管理做完美,真是個(gè)麻煩的事
           兄弟還沒(méi)有考慮功能權(quán)限與數(shù)據(jù)權(quán)限控制  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2009-12-30 21:02 | scotty
          這樣設(shè)計(jì) 用戶加入 組織機(jī)構(gòu) 權(quán)限怎么查 ,如何得到用戶加入的是那個(gè)組織的權(quán)限   回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2009-12-30 21:03 | scotty
          沒(méi)有辦法體現(xiàn)出 用戶加入那一個(gè)組織中的權(quán)限啊  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2010-07-05 21:49 | wx
          提一點(diǎn)意見,我感覺(jué)組有時(shí)候在一些小型的權(quán)限管理中,不是很好用,能不能設(shè)計(jì)成分兩部分的,就是可以讓用戶選擇是否帶組管理的,我感覺(jué)那樣會(huì)更好.  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2010-07-05 21:50 | wx
          我感覺(jué)組和角色有點(diǎn)重復(fù)了,個(gè)人意見.  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)[未登錄](méi)
          2010-09-17 10:49 | jack
          可以給個(gè)系統(tǒng)看看不?
          想學(xué)習(xí)一下……
          我的郵箱:zhanmingbo@126.com
            回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2015-04-22 11:21 | lhjgdou@163.com
          我想問(wèn)一下:
          1、組和角色是否重復(fù)了;
          2、基于什么情況下添加組這個(gè)對(duì)象?便于管理?(如果是出于對(duì)用戶的管理的話,組就不應(yīng)該有權(quán)限的屬性,否則,組權(quán)限 跟 角色權(quán)限 會(huì)沖突;如果組權(quán)限是從角色權(quán)限那里繼承的話,那就重復(fù)了);


          不是很理解,智商有限,望樓主解答…………  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2015-07-01 11:51 | 起天大圣
          很不錯(cuò)  回復(fù)  更多評(píng)論
            
          # re: 通用權(quán)限管理設(shè)計(jì)篇(二)——數(shù)據(jù)庫(kù)設(shè)計(jì)
          2015-12-14 11:16 | Winte
          請(qǐng)問(wèn)下,我的資源怎么和權(quán)限對(duì)應(yīng)起來(lái)呢,那豈不是還要加個(gè)資源表、資源對(duì)應(yīng)角色表、資源對(duì)應(yīng)組表、資源對(duì)應(yīng)用戶表、資源對(duì)應(yīng)權(quán)限表?  回復(fù)  更多評(píng)論
            
          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

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

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊(cè)

          關(guān)注blog

          積分與排名

          • 積分 - 2293850
          • 排名 - 3

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 武隆县| 霍邱县| 内黄县| 巴楚县| 兰州市| 平乐县| 郯城县| 游戏| 雷州市| 禄劝| 太湖县| 留坝县| 峨边| 通化县| 扶沟县| 宾阳县| 韶关市| 阿坝县| 武功县| 永昌县| 深泽县| 榆中县| 凌云县| 文成县| 长子县| 班戈县| 鄂州市| 江城| 和平县| 清水河县| 广河县| 平江县| 兴化市| 雅安市| 怀安县| 太湖县| 辰溪县| 锦屏县| 进贤县| 竹山县| 榆中县|