若是全站用同一套使用者,那就是 users 表。若是前後台拆分,就是前台用 members, 後台用 managers(或是admins)但是我看英文的一些討論說完全沒必要拆分。但我被要求拆分。我的上級說,雖然可以透過欄位像是 is_admin 或是角色來區分,但是分開比較安全。有道理嗎?
members如果被某種方式取得,至少還不知道managers。疑問:如果能駭到 members, 不能順便把 managers 也駭到手?如果說不知道表名,隨便猜,managers, admins, users。如果被加上前綴、後綴,查 information_schema表也可以。如果說 information_schema 通常不開放給網站資料庫的帳號密碼,但我沒有收過這樣的規範。
我的表單送出後,都會去查找 information_schema 的表的欄位,例如訂單,就去查訂單表有哪些欄位。如果訂單的表單欄位 input name 跟訂單資料表的欄位一致,那就跑迴圈寫入。當然還要加上 fillable 判斷。像創建者、修改者、創建時間、修改時間,會略過。
如果說不開放 information_schema 給當前網站系統的資料庫連線帳號,那我的系統可能又要調整一番。蠻麻煩的。但我沒收到這個指示。
如果不管業務面,金主,案主什麼的,單純從程式技術、資訊安全來說,前後台使用者拆分,是否有必要?
前後台使用者我仍然有做關聯。其實我只被要求前後台使用者分開,資料表取什麼名稱是我自己定的。我這邊沒人懂 laravel (?! ) 我是這樣做,前台 members, 後台 managers, 然後用 users 做為全站共用的表,也只使用它的 id 欄位。然後另外兩個表都各有 user_id 欄位。這不就又統一了嗎 (呵呵)。只是帳號密碼是存在前後台各自的表。但是其它地方需要記錄哪個使用者,就可以用 users.id。例如訂單表 creator_id, modifier_id,我對應的是 users.id。
大家覺得呢
完全沒道理,使用者的表沒有必要分開前後台,理由如下
現在反而還越來越多站台希望整合會員系統,將這部分功能抽離出來變成一個服務,使各站台可以使用同一個登入系統,減少使用者要記很多帳密的困擾。
我認為現在還特地將Admin另開表來儲存,實屬畫蛇添足的行為。
以下為ChatGPT的回答:user和admin帳號共用table優缺點為何?
共用同一個表來存儲user和admin帳號有其優點和缺點,根據具體應用場景可能會有不同的影響。以下是詳細的分析:
簡化設計
數據一致性
方便擴展
role
),可以方便地擴展不同類型的用戶,而不需要修改數據庫結構。安全性挑戰
潛在性能問題
複雜性增加
共用一個表適合數據結構相似且數量不大、要求數據一致性高的應用場景。對於較大的系統或需要高度安全性和性能的場景,可能需要考慮將不同類型的用戶存儲在不同的表中,以便更好地管理和優化。
最終選擇應該根據具體的應用需求、數據量、性能要求以及開發團隊的技術能力來決定。