如題,一般後台管理使用者和會員使用者是否要分開,分成兩張使用者表,一個會員使用者表,一個管理使用者表,如果只用一張表可以嗎,哪個更好
回複內容:
如題,一般後台管理使用者和會員使用者是否要分開,分成兩張使用者表,一個會員使用者表,一個管理使用者表,如果只用一張表可以嗎,哪個更好
謝邀!
我的職業生涯中幾乎所有的前後台管理會員都是分開的,大部分做的都是互連網產品,我覺得我可以總結出幾點為什麼要這麼做:
業務需求:一般總管理後台都是公司內部使用,不牽涉第三方使用者,假設真有第三方的分銷商、代理商之類的也會開發一個專門的使用者後台
安全需求:安全在業界達成共識的是沒有絕對的安全,那麼就要儘可能的考慮病增加被黑的難度,第一層就是把管理後台藏起來(限制IP、不用常用網域名稱、目錄等),第二層就算髮現了也盡量不要用弱密碼,加驗證碼防暴力破解之類的,然後再其他層面問題,可能還會存在分開部署的需求,獨立的話更容易擴充一些滿足更多的需求
這是個常見的疑問,也是個好問題。
技術決策沒有一定之規。實際上這兩種實踐都是存在的,也都有不少優秀的應用執行個體。
一個系統總需要解決驗證和鑒權,即“你是不是聲稱的這個人”和“這個人是否可以做這件事”兩個問題。
從這個角度來看,根據使用者身份進行劃分,來確定使用者的許可權範圍,這隻不過是實現“鑒權”這個目的的可行方法之一,並無什麼神秘之處。
管理員/使用者分表,這是劃分使用者身份的一個相當粗暴的二分手段。其特點是:
如果你的需求符合以上特點,那麼分表就是可以的。否則就不應該分。
但必須指出的是:分表能實現的許可權控制,不分表一般都是能做到的。所以為了保留靈活性起見,一般不分表是個好選擇,尤其是對於新寫的程式(需求可能有頻繁變更)更是如此。
樓上的都說得非常精彩。
我站在資料的角度說說我的看法。
開發中,經常有這樣的情況,開始建了一張表用於存資料A,後面的開發,接到需求,定義了資料結構,然後發現和這張表就幾個欄位不一樣,然後加上幾個欄位,就把資料B也存在這個表裡了。
這樣,最終將搞亂一切。
所以,我的觀點的,一個表只存一個資料,保持一致性,減少後期犯錯的機會。男人就只能進男廁所。
如果鑒權方式相同, 我覺得存一張表方便.
如果鑒權方式都不相同, 那麼還是儲存兩張表好一點
管理員與會員帳號應該分開儲存,管理員要做普通帳號的功能操作,應該用一個普通會員的帳號來操作,不然系統是處理許可權的時候就要用預設規則, 比如管理員預設覆蓋會員的所有許可權, 但是實際需求可能不是這樣
這種問題還是那個萬金油的答案:看需求,具體問題具體分析。
許可權這個事有幾個粗淺的層級:
1-註冊使用者只有兩種身份:普通使用者、管理員,沒有更詳細的許可權管理了,這種你分不分表都一樣。
2-對註冊使用者中至少一種類型的使用者需要進行許可權管理:從邏輯上說,既然需要進行許可權管理了,那就不分表,統一邏輯更容易開發和維護
3-不同使用者類型的許可權管理方式是不一樣的:能不分就不分,但是如果分表可以大大降低系統複雜度,那就分。比如通常的許可權是TrueFalse判定,但是可能項目要求使用者按vip等級管理,1級最大上傳10照片,2級最大上傳50張照片這種非TrueFalse判定,非要放在一起可能就很麻煩了,可以考慮分表。
當然從另一個角度來說,開發人員說了我就要分(或者我就不分),反正我能實現要求,再麻煩我樂意。你能怎麼滴?
還是一句話,看個人或需求
如果管理員和會員的鑒權方式一樣,可以放在一起,不一樣最好分開放
對於個人角度來說,我一般不會把使用者展示和管理頁面寫在一起,避免驗證