我正在嘗試開發一個多層次權限管理系統,並希望在這方面獲得一些技術上的建議。目前我有以下的設想:
我目前主要在設計權限划分的部分,但由於我是資料庫新手,覺得自己無法深入思考未來可能出現的效能問題或權限衝突,也擔心是否在未來需要使用到群組(group)或單一登入(SSO)等其他技術時會遇到問題。現在的想法會想先把權限表整理到users裡面用jason/list格式表示管理的公司或場域,不然新增一個權限就多一條資料,感覺很浪費資源,要JOIN也會影響查詢速度。
有大神能夠提供一些建議嗎或是指點我應該在哪些方面尋找更多資料和靈感。
以下是可能會遇到的情況:
如果還有其他需要說明的地方,請隨時告訴我。
我的建議是:管理「功能」
而不是管理「資料」
意思是,在公堂上做個假設如下:
F001 - 可新增公司負責人
F002a - 查看一間(自己本身)
公司及其場域資料
F002b - 查看多間
公司及其場域資料
F002c - 修改一間(自己本身)
公司及其場域資料
F002d - 修改多間
公司及其場域資料
F003a - 查看一間(自己本身)
員工資料
F003b - 查看多間
公司員工資料
F003c - 修改一間(自己本身)
員工資料
F003d - 修改多間
公司員工資料
然後再照你規劃的各種角色
授權相關的功能給他
例如一間公司負責人=F002a+F002c+F003b+F003d
另外
比起權限問題
我覺得這個也是很重要要考量的部份因為每間公司需要獨立運作,所以我在登入畫面上打算加入輸入公司統編及帳號密碼的功能
記得一定要寫「記住統編/帳號」的功能
否則要我每天輸入帳號密碼就很苦瓜了
還要我輸入公司的統一編號
開什麼玩笑