在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  C  網(wǎng)絡(luò)安全/ 包含項(xiàng)目管理的權(quán)限數(shù)據(jù)庫如何設(shè)計?

包含項(xiàng)目管理的權(quán)限數(shù)據(jù)庫如何設(shè)計?

現(xiàn)有一個系統(tǒng)需要設(shè)計權(quán)限管理數(shù)據(jù)庫表,除了常見的“用戶注冊、登錄”等之外,里面還有創(chuàng)建和管理項(xiàng)目的需求。不同的項(xiàng)目分配給不同的人,項(xiàng)目里面的一些操作不同身份的人有不同的權(quán)限。用戶分為本公司用戶和外面公司用戶,看了些基于RBAC的權(quán)限設(shè)計,基本有“用戶”、“角色”、“權(quán)限”及其關(guān)聯(lián)表,但是“項(xiàng)目”怎么設(shè)計其權(quán)限數(shù)據(jù)庫表我就有點(diǎn)懵了,請大牛幫助指導(dǎo)下

回答
編輯回答
夏夕

如果我沒理解錯,項(xiàng)目的操作權(quán)限只和用戶的角色(即你說的身份有關(guān))

  • 項(xiàng)目單獨(dú)一張表,和用戶表是多對多關(guān)系,可以拉一張userId和projectId的關(guān)聯(lián)表(具體可以參見hibernate的manytomany)
  • 不同角色有不同的操作權(quán)限,且不同角色在不同項(xiàng)目中權(quán)限不同,可以單獨(dú)拉一張權(quán)限表,共4列,自增主鍵,項(xiàng)目id,角色id,項(xiàng)目權(quán)限,其中 項(xiàng)目id+角色id是聯(lián)合唯一鍵,項(xiàng)目權(quán)限業(yè)務(wù)中可以用枚舉變量,在表中可以用數(shù)字表示

題外話

其實(shí)所有設(shè)計都應(yīng)該回歸本源,即業(yè)務(wù)需求?!翰煌巧胁煌牟僮鳈?quán)限,且不同角色在不同項(xiàng)目中權(quán)限不同』,這個具體的場景是什么?是有一個管理員平臺供超級管理員去設(shè)置每個角色在每個項(xiàng)目中的權(quán)限么?

其實(shí)我覺得更合理的方案:用戶權(quán)限和項(xiàng)目解耦,可能只是用于系統(tǒng)的登錄和其他模塊的操作權(quán)限。項(xiàng)目權(quán)限直接通過頁面配置,且是用戶緯度的,即把第二張表中的角色id改為用戶id即可。即每個項(xiàng)目管理員都可以給用戶分配權(quán)限,所以項(xiàng)目權(quán)限在用戶緯度配置更加合理

2018年5月8日 00:30