開發類似慕課網的平台,需支援學生、教師、管理後台三種登入方式,管理員表該如何設計?
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 足夠應付,切勿過度設計。