首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

資料庫設計:多角色登入系統的管理員表結構建議

     編輯:程式設計綜合問答

開發類似慕課網的平台,需支援學生、教師、管理後台三種登入方式,管理員表該如何設計?

推薦方案:單一用戶表 + 角色欄位

CREATE TABLE users (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL UNIQUE,
  password_hash VARCHAR(255) NOT NULL,
  email VARCHAR(100),
  real_name VARCHAR(50),
  role_type TINYINT NOT NULL COMMENT '1=學生 2=教師 3=管理員',
  status TINYINT DEFAULT 1 COMMENT '0=停用 1=啟用',
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

設計優勢

  • 統一認證:單一登入入口,簡化驗證邏輯
  • 擴充性強:新增角色只需調整 role_type 定義
  • 避免資料重複:共用基礎欄位(姓名、信箱等)
  • 查詢效能佳:單表索引即可滿足大部分需求

進階擴充:角色權限分離

若權限極其複雜,可採用 RBAC 模型:

-- 角色表
roles (id, name, description)
-- 權限表
permissions (id, code, description)
-- 角色權限關聯
role_permissions (role_id, permission_id)
-- 用戶角色關聯
user_roles (user_id, role_id)

但對中小型專案,單表加 role_type 足夠應付,切勿過度設計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved