Files
Document_translator_1panel/migrations/fix_auth_architecture.sql
beabigegg 6599716481 1panel
2025-10-03 08:19:40 +08:00

36 lines
1.6 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 修正認證系統架構
-- 方案 A: 保留 dt_users 的 username 和 display_name都使用 API 回傳的 name (姓名+email)
-- 使用 email 作為主要唯一識別碼sys_user 表專門記錄登入資訊
-- Created: 2025-10-01
-- 1. 確保 dt_users 表的 email 唯一約束
-- 先檢查是否有重複的 email如果有則需要手動處理
-- 因為有外鍵約束,不能直接刪除
-- 先顯示重複的 email 記錄讓管理員確認
-- SELECT email, COUNT(*) as count FROM dt_users GROUP BY email HAVING COUNT(*) > 1;
-- 添加 email 唯一約束
ALTER TABLE dt_users
ADD CONSTRAINT uk_dt_users_email UNIQUE (email);
-- 2. 調整現有欄位註解,說明新的使用方式
ALTER TABLE dt_users
MODIFY COLUMN username VARCHAR(255) NOT NULL COMMENT 'API name (姓名+email格式)',
MODIFY COLUMN email VARCHAR(255) NOT NULL COMMENT '電子郵件 (主要識別鍵)';
-- 3. 保持 sys_user 表結構,但調整為專門記錄登入資訊
-- sys_user 表通過 email 與 dt_users 關聯
-- (保留現有的 sys_user 表,因為它是專門用於登入記錄)
-- 4. 重新命名 login_logs 為 dt_login_logs (配合專案命名規則)
RENAME TABLE login_logs TO dt_login_logs;
-- 5. 更新 dt_login_logs 表結構 (配合 dt_users 的主鍵)
ALTER TABLE dt_login_logs
ADD COLUMN user_id INT COMMENT '關聯到 dt_users.id',
ADD INDEX idx_user_id (user_id),
ADD FOREIGN KEY fk_dt_login_logs_user_id (user_id) REFERENCES dt_users(id) ON DELETE SET NULL;
-- 6. 建立使用者識別索引 (支援 email 和 username 快速查詢)
ALTER TABLE dt_users
ADD INDEX idx_username_email (username, email);