178 lines
6.2 KiB
SQL
178 lines
6.2 KiB
SQL
-- 创建数据库
|
||
DROP DATABASE IF EXISTS game_categories;
|
||
CREATE DATABASE game_categories DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
USE game_categories;
|
||
|
||
-- 管理员表
|
||
CREATE TABLE admins (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
username VARCHAR(50) NOT NULL UNIQUE,
|
||
password VARCHAR(255) NOT NULL,
|
||
email VARCHAR(100) NOT NULL UNIQUE,
|
||
role ENUM('superadmin', 'admin', 'editor') DEFAULT 'editor',
|
||
status ENUM('active', 'inactive') DEFAULT 'active',
|
||
last_login DATETIME,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 管理员权限表
|
||
CREATE TABLE admin_permissions (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
admin_id INT NOT NULL,
|
||
permission VARCHAR(50) NOT NULL,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
FOREIGN KEY (admin_id) REFERENCES admins(id) ON DELETE CASCADE,
|
||
UNIQUE KEY unique_admin_permission (admin_id, permission)
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 分类表
|
||
CREATE TABLE categories (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
name VARCHAR(50) NOT NULL,
|
||
description TEXT,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 游戏表
|
||
CREATE TABLE games (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
title VARCHAR(100) NOT NULL,
|
||
description TEXT,
|
||
category_id INT,
|
||
image VARCHAR(255),
|
||
release_date DATE,
|
||
developer VARCHAR(100),
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 游戏平台关联表
|
||
CREATE TABLE game_platforms (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
game_id INT,
|
||
platform VARCHAR(50),
|
||
FOREIGN KEY (game_id) REFERENCES games(id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 游戏标签关联表
|
||
CREATE TABLE game_tags (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
game_id INT,
|
||
tag VARCHAR(50),
|
||
FOREIGN KEY (game_id) REFERENCES games(id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 游戏标签主表
|
||
CREATE TABLE game_tag_master (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
name VARCHAR(50) NOT NULL UNIQUE,
|
||
description TEXT,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 系统配置表
|
||
CREATE TABLE system_settings (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
category VARCHAR(50) NOT NULL,
|
||
`key` VARCHAR(50) NOT NULL,
|
||
value TEXT,
|
||
description VARCHAR(255),
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY unique_setting (`category`, `key`)
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 留言表
|
||
CREATE TABLE messages (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
name VARCHAR(100) NOT NULL,
|
||
email VARCHAR(100) NOT NULL,
|
||
content TEXT NOT NULL,
|
||
status ENUM('unread', 'read') DEFAULT 'unread',
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
read_by INT,
|
||
read_at TIMESTAMP NULL,
|
||
FOREIGN KEY (read_by) REFERENCES admins(id)
|
||
) ENGINE=InnoDB;
|
||
|
||
-- 创建索引
|
||
CREATE INDEX idx_games_category ON games(category_id);
|
||
CREATE INDEX idx_games_title ON games(title);
|
||
|
||
-- 初始化数据
|
||
-- 创建超级管理员账号 (密码: 123qwe)
|
||
INSERT INTO admins (username, password, email, role, status) VALUES
|
||
('admin', '$2a$10$YqFCm8pRCKOPtPDzqvwsUOQY7ZeUFNHDHI8Qc3ej3wqgNWO6GEBqe', 'admin@example.com', 'superadmin', 'active');
|
||
|
||
-- 添加管理员权限
|
||
INSERT INTO admin_permissions (admin_id, permission) VALUES
|
||
(1, 'user:manage'),
|
||
(1, 'game:manage'),
|
||
(1, 'category:manage'),
|
||
(1, 'media:manage'),
|
||
(1, 'system:manage'),
|
||
(1, 'message:manage');
|
||
|
||
-- 插入游戏分类
|
||
INSERT INTO categories (name, description) VALUES
|
||
('动作游戏', '包含格斗、射击等动作元素的游戏'),
|
||
('角色扮演', '玩家可以扮演角色进行冒险的游戏'),
|
||
('策略游戏', '需要战略思维的游戏'),
|
||
('体育竞技', '模拟各种体育运动的游戏'),
|
||
('休闲益智', '简单有趣的休闲游戏');
|
||
|
||
-- 插入示例游戏数据
|
||
INSERT INTO games (title, description, category_id, developer, release_date) VALUES
|
||
('魔兽世界', '著名的大型多人在线角色扮演游戏', 2, 'Blizzard', '2004-11-23'),
|
||
('FIFA 23', '最新的足球体育游戏', 4, 'EA Sports', '2022-09-30'),
|
||
('俄罗斯方块', '经典的休闲益智游戏', 5, 'Various', '1984-06-06');
|
||
|
||
-- 添加游戏平台数据
|
||
INSERT INTO game_platforms (game_id, platform) VALUES
|
||
(1, 'PC'),
|
||
(1, 'Mac'),
|
||
(2, 'PC'),
|
||
(2, 'PS5'),
|
||
(2, 'Xbox'),
|
||
(3, 'PC'),
|
||
(3, 'Mobile');
|
||
|
||
-- 添加游戏标签
|
||
INSERT INTO game_tags (game_id, tag) VALUES
|
||
(1, 'MMORPG'),
|
||
(1, '奇幻'),
|
||
(2, '体育'),
|
||
(2, '足球'),
|
||
(3, '益智'),
|
||
(3, '经典');
|
||
|
||
-- 插入一些默认标签
|
||
INSERT INTO game_tag_master (name, description) VALUES
|
||
('RPG', '角色扮演游戏'),
|
||
('动作', '动作类游戏'),
|
||
('策略', '策略类游戏'),
|
||
('射击', '射击类游戏'),
|
||
('冒险', '冒险类游戏'),
|
||
('体育', '体育类游戏'),
|
||
('竞速', '竞速类游戏'),
|
||
('模拟', '模拟类游戏');
|
||
|
||
-- 插入初始配置数据
|
||
INSERT INTO system_settings (category, `key`, value, description) VALUES
|
||
-- 公司信息
|
||
('company', 'name', 'Game Categories', '公司名称'),
|
||
('company', 'description', 'Game Categories 成立于2024年,是一家专注于游戏分类和推荐的创新型科技公司。', '公司简介'),
|
||
('company', 'mission', '让每个玩家都能找到最适合自己的游戏,创造快乐的游戏体验。', '公司使命'),
|
||
('company', 'vision', '成为全球领先的游戏分类和推荐平台,引领游戏文化的发展。', '公司愿景'),
|
||
-- 联系方式
|
||
('contact', 'address', '北京市朝阳区xxx大厦', '公司地址'),
|
||
('contact', 'email', 'contact@example.com', '联系邮箱'),
|
||
('contact', 'phone', '+86 123 4567 8900', '联系电话'),
|
||
-- 核心价值观
|
||
('values', 'value1', '{"title":"用户至上","description":"始终以用户需求为中心,提供最优质的服务"}', '核心价值观1'),
|
||
('values', 'value2', '{"title":"创新驱动","description":"持续创新,推动技术与产品的进步"}', '核心价值观2'),
|
||
('values', 'value3', '{"title":"品质保证","description":"严格把控质量,确保服务的可靠性"}', '核心价值观3'),
|
||
('values', 'value4', '{"title":"开放共赢","description":"与合作伙伴共同成长,实现价值共享"}', '核心价值观4');
|
||
|
||
-- 更新默认权限设置
|
||
UPDATE admins SET role = 'admin' WHERE role = 'editor'; -- 将编辑角色升级为管理员 |