亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

關(guān)于用戶組和權(quán)限的表結(jié)構(gòu)設(shè)計(jì)

系統(tǒng) 2425 0

? ? ? 對(duì)于一個(gè)有N個(gè)管理模塊的WEB后臺(tái)程序,如何為管理員分配權(quán)限,又如何在表中體現(xiàn)出來,可能每個(gè)人都有自己的實(shí)現(xiàn)過程。我作為一個(gè)菜鳥,搜集了一些資料,在這里做一下整理。
? ? ?前題:五個(gè)模塊;兩個(gè)組;幾個(gè)用戶。權(quán)限分配。
? ? ?我記得我第一次做這個(gè)的時(shí)候,當(dāng)然網(wǎng)站比較簡單。一張表搞定,用USER_TYPE區(qū)分1234為不同的身份組(組的字典表都沒有做,程序中用注釋體現(xiàn) ),然后跟著五個(gè)字段,由0和1表示這個(gè)家伙有沒有管理權(quán)限。一切按著需求來,0和1的標(biāo)識(shí)對(duì)于一個(gè)小網(wǎng)站來說已經(jīng)夠用了,其實(shí)屬于一個(gè)假的權(quán)限指派,結(jié)果大家都想的到,因?yàn)閷?duì)于一個(gè)用戶來講他只有可見或不可見兩個(gè)層面,而不存在可管理不可管理的真實(shí)權(quán)限。當(dāng)然BOSS不知道,而我為了防止敲URL地址直接訪問,不得不在每個(gè)頁面都做驗(yàn)證。雖說騙過了BOSS,真正悲劇的在于以后模塊的越來越多,每加一個(gè)模塊我就得跟加一個(gè)字段,這應(yīng)該就是最讓人無法忍受的地方了。
? ? ?簡單歸簡單,簡單到無腦的設(shè)計(jì)。缺陷也很致命:

  • 隨著功能的增加而增加表示權(quán)限的字段,DBA看見估計(jì)已經(jīng)哭的不成人樣了。
  • 每個(gè)管理員對(duì)于增刪改查等操作根本無法做出細(xì)化的權(quán)限分配。
? ? ? 對(duì)于這個(gè)加字段的方法,我想可以用一個(gè)字段,里面存放JSON數(shù)據(jù)字符串而表示,這樣在存取的時(shí)候多一步解析,看起來“完美”的解決了這個(gè)隨著模塊的增加而加字段的問題。麻煩歸麻煩點(diǎn),總體還能正常工作。畢竟是權(quán)限要求細(xì)化程度不高的小站。而哪一天BOSS說給我把誰誰變成哪個(gè)組,要哪些管理權(quán)限,只能看,不能增加不能刪除。好吧,還好,涉及用戶不多,我在網(wǎng)頁上多做判斷好了,把增加和刪除不顯示出來。看起來我又挺過去了。
? ? ?但這總歸不是辦法,我明白了這個(gè)權(quán)限表設(shè)計(jì)的只能算是失敗的。
? ? ?怎么樣的設(shè)計(jì)才是完美的呢?
? ? ?回到需求上來,幾個(gè)模塊,幾個(gè)組,一批用戶。
? ? ?權(quán)限針對(duì)的管理對(duì)象是模塊,而一個(gè)模塊最少需要四種管理手段,即傳統(tǒng)的增刪改查。一個(gè)組擁有這個(gè)模塊的所有僅限,另一個(gè)組只擁有該模塊的查看瀏覽權(quán)限。如何設(shè)計(jì)?
? ? ?好在我找到了比較合適的方法。權(quán)限表的設(shè)計(jì)由模塊做為對(duì)象。
? ? ?組ID,模塊ID,ADD,MODI,DEL等幾個(gè)主要字段,0和1區(qū)分是否有管理權(quán)限。用戶只要指定組,就獲取了某一種管理權(quán)限。這樣的設(shè)計(jì)在后期增加模塊的情況下只需要為某個(gè)組增加幾個(gè)數(shù)據(jù)記錄而已,為組ID做個(gè)索引,還是有速度優(yōu)化空間的。而更大的好處就是權(quán)限被細(xì)化了。看起來很完美的解決方案。
? ? ?只是看起來。
? ? ?如果哪天為了增加個(gè)臨時(shí)體驗(yàn)帳號(hào)。如何是好?如果哪天組被刪除掉了,如何是好?
? ? ?我擦,組都沒了,我的用戶都沒權(quán)限了。
? ? ?失敗了?顯然是的。
? ? ?簡單的改動(dòng)一下,把組ID換成USER_ID,好了,組沒了就沒了吧。把組又細(xì)化到人身上,人對(duì)于模塊擁有哪些權(quán)限,有五個(gè)模塊就會(huì)出現(xiàn)關(guān)于這個(gè)USER_ID的五條記錄,一個(gè)矩陣。說回來,這個(gè)組怎么辦?
? ? ?組只是一個(gè)抽象的概念,如果在網(wǎng)頁上表示這么個(gè)矩陣:
? ? ?模塊一:checkbox, checkbox, checkbox
? ? ?模塊二:checkbox, checkbox, checkbox
? ? ?模塊三:checkbox, checkbox, checkbox
? ? ?模塊四:checkbox, checkbox, checkbox
? ? ?對(duì)于組的權(quán)限只是一個(gè)簡單的JS效果,把某些CHECKBOX搞成選中狀態(tài)就OK了。這樣可以做到非常人性化,每個(gè)模塊的權(quán)限可以加上兩個(gè)日期,起始日期,結(jié)束日期,臨時(shí)VIP就出來了,月會(huì)員制。
? ? ?勾選了組,自動(dòng)選中一些CHECKBOX,我再把CHECKBOX全點(diǎn)掉,這貨屬于管理員組,但沒有一點(diǎn)權(quán)限。誰說同一個(gè)組的人權(quán)限必須相同呢?

關(guān)于用戶組和權(quán)限的表結(jié)構(gòu)設(shè)計(jì)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久久精品免费国产四虎 | 68久久久久欧美精品观看 | 色网综合 | 亚洲精品在线视频 | 五月天天爱 | 国内精品久久久久久影院8f | 一级毛片不卡 | 国产成人a在一区线观看高清 | 国产成人亚洲精品乱码在线观看 | 护士一级毛片 | 97影院理论在线观看 | 草久久久久 | 欧美日韩亚洲一区二区三区 | 四虎成人国产精品视频 | 欧美成人免费看片一区 | 国产成人精品视频一区 | 99热黄色| 久久在线资源 | 国产午夜精品久久久久免费视 | 国产亚洲精品久久午夜 | 四虎影视最新 | 深夜精品影院18以下勿进 | 四虎视频国产精品免费 | 日韩在线一 | 日本不卡视频在线视频观看 | 欧美成人精品欧美一级乱黄 | 五月天婷婷网址 | 欧美国产综合日韩一区二区 | 欧美不卡一区 | 欧美japanese孕交 | 四虎最新在线 | 91色综合 | 欧美成人性视频在线黑白配 | 玖玖在线国产精品 | 色婷婷六月 | 亚洲精品国产美女在线观看 | 精品免费福利视频 | 日韩特黄 | 国产精品久久久亚洲动漫 | 国产午夜亚洲精品第一区 | 国产精品午夜在线观看 |