Search

관리자 로그인 테이블

-- users: 관리자 사용자 계정 CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, user_uuid CHAR(36) NOT NULL UNIQUE, email VARCHAR(255) NOT NULL UNIQUE, password_hash VARCHAR(255) NULL, username VARCHAR(100) NOT NULL, role ENUM('super_admin', 'admin', 'manager', 'viewer') DEFAULT 'viewer', auth_provider ENUM('local', 'google') DEFAULT 'local', google_id VARCHAR(255) NULL UNIQUE, profile_image VARCHAR(500) NULL, is_active TINYINT DEFAULT 1, last_login_at TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_user_uuid (user_uuid), INDEX idx_email (email), INDEX idx_google_id (google_id), INDEX idx_role (role), INDEX idx_is_active (is_active) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- user_sessions: 사용자 세션 관리 (JWT 토큰 등) CREATE TABLE user_sessions ( session_id INT AUTO_INCREMENT PRIMARY KEY, user_uuid CHAR(36) NOT NULL, token_hash VARCHAR(255) NOT NULL UNIQUE, refresh_token_hash VARCHAR(255) NULL, ip_address VARCHAR(45) NULL, user_agent TEXT NULL, expires_at TIMESTAMP NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL, FOREIGN KEY (user_uuid) REFERENCES users(user_uuid) ON DELETE CASCADE, INDEX idx_user_uuid (user_uuid), INDEX idx_token_hash (token_hash), INDEX idx_expires_at (expires_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- user_activity_logs: 사용자 활동 로그 CREATE TABLE user_activity_logs ( log_id INT AUTO_INCREMENT PRIMARY KEY, user_uuid CHAR(36) NOT NULL, action_type ENUM('login', 'logout', 'create', 'update', 'delete', 'view') NOT NULL, resource_type VARCHAR(100) NULL, resource_id VARCHAR(255) NULL, ip_address VARCHAR(45) NULL, details JSON NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL, FOREIGN KEY (user_uuid) REFERENCES users(user_uuid) ON DELETE CASCADE, INDEX idx_user_uuid (user_uuid), INDEX idx_action_type (action_type), INDEX idx_created_at (created_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- password_reset_tokens: 비밀번호 재설정 토큰 CREATE TABLE password_reset_tokens ( token_id INT AUTO_INCREMENT PRIMARY KEY, user_uuid CHAR(36) NOT NULL, token_hash VARCHAR(255) NOT NULL UNIQUE, expires_at TIMESTAMP NOT NULL, used_at TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL, FOREIGN KEY (user_uuid) REFERENCES users(user_uuid) ON DELETE CASCADE, INDEX idx_user_uuid (user_uuid), INDEX idx_token_hash (token_hash), INDEX idx_expires_at (expires_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
TypeScript
복사