xk/backend/database/database.sql

137 lines
5.7 KiB
MySQL
Raw Normal View History

2026-02-02 20:51:52 +08:00
-- ========================================
-- 虚境起源网站管理后台数据库初始化脚本
-- ========================================
-- 创建日期: 2026-02-02
-- 说明: 包含所有必需的数据库、表和初始数据
-- ========================================
-- 创建数据库
CREATE DATABASE IF NOT EXISTS website_admin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE website_admin;
-- ========================================
-- 1. 管理员用户表
-- ========================================
CREATE TABLE IF NOT EXISTS admin_users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
last_login TIMESTAMP NULL,
INDEX idx_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ========================================
-- 2. 合作伙伴表
-- ========================================
CREATE TABLE IF NOT EXISTS partners (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
logo VARCHAR(255) NOT NULL,
url VARCHAR(255),
sort_order INT DEFAULT 0,
status TINYINT DEFAULT 1 COMMENT '1=active, 0=inactive',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_status (status),
INDEX idx_sort_order (sort_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ========================================
-- 3. 系统设置表
-- ========================================
CREATE TABLE IF NOT EXISTS system_settings (
id INT AUTO_INCREMENT PRIMARY KEY,
setting_key VARCHAR(100) UNIQUE NOT NULL,
setting_value TEXT,
description VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_setting_key (setting_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ========================================
-- 4. 视频表
-- ========================================
CREATE TABLE IF NOT EXISTS videos (
id INT AUTO_INCREMENT PRIMARY KEY,
file_id VARCHAR(100) UNIQUE COMMENT '腾讯云VOD文件ID',
title_cn VARCHAR(200) NOT NULL COMMENT '中文标题',
title_en VARCHAR(200) NOT NULL COMMENT '英文标题',
desc_cn TEXT COMMENT '中文描述',
desc_en TEXT COMMENT '英文描述',
cover_url VARCHAR(500) COMMENT '封面图URL',
video_url VARCHAR(500) COMMENT '视频播放URL',
duration INT COMMENT '视频时长(秒)',
file_size BIGINT COMMENT '文件大小(字节)',
status TINYINT DEFAULT 1 COMMENT '1=active, 0=inactive, 2=processing',
sort_order INT DEFAULT 0,
upload_status VARCHAR(50) DEFAULT 'pending' COMMENT 'pending, uploading, success, failed',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_status (status),
INDEX idx_sort_order (sort_order),
INDEX idx_file_id (file_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ========================================
-- 5. VOD配置表包含COS和防盗链配置
-- ========================================
CREATE TABLE IF NOT EXISTS vod_config (
id INT AUTO_INCREMENT PRIMARY KEY,
secret_id VARCHAR(255) NOT NULL COMMENT '腾讯云SecretId',
secret_key VARCHAR(255) NOT NULL COMMENT '腾讯云SecretKey',
region VARCHAR(50) DEFAULT 'ap-guangzhou' COMMENT '地域',
sub_app_id VARCHAR(50) COMMENT '点播子应用ID',
`procedure` VARCHAR(100) COMMENT '任务流',
storage_region VARCHAR(50) COMMENT '存储地域',
cos_bucket VARCHAR(100) COMMENT 'COS存储桶名称',
cos_region VARCHAR(50) DEFAULT 'ap-guangzhou' COMMENT 'COS地域',
cos_path VARCHAR(100) DEFAULT 'video-covers/' COMMENT 'COS存储路径前缀',
sign_key VARCHAR(100) COMMENT 'VOD防盗链签名密钥',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ========================================
-- 初始数据插入
-- ========================================
-- 插入默认管理员账户
-- 用户名: admin
-- 密码: admin123456 (使用bcryptjs加密10轮salt)
INSERT INTO admin_users (username, password, email)
VALUES ('admin', '$2a$10$PGOF6JXp3CGjg.5evfJlG.oeOr/JvxYECbLxn2ypzsRKcT7UK5.YK', 'admin@xuking.com')
ON DUPLICATE KEY UPDATE username=username;
-- 插入默认存储配置
INSERT INTO system_settings (setting_key, setting_value, description)
VALUES
('logo_upload_dir', 'img/logo', 'Directory for partner logo uploads'),
('logo_max_size', '5242880', 'Maximum logo file size in bytes (5MB)'),
('allowed_extensions', 'jpg,jpeg,png,gif,svg', 'Allowed file extensions for logo upload')
ON DUPLICATE KEY UPDATE setting_key=setting_key;
-- 插入现有合作伙伴数据
INSERT INTO partners (name, logo, url, sort_order, status) VALUES
('vivo', 'img/logo/vivo.png', '', 1, 1),
('BOE', 'img/logo/boe.png', '', 2, 1),
('北京大运河博物馆-首都博物馆东馆', 'img/logo/bwg.png', '', 3, 1),
('江西日报', 'img/logo/jxrb.png', '', 4, 1),
('丽江市文化和旅游局', 'img/logo/ljs.png', '', 5, 1),
('Meta', 'img/logo/meta.png', '', 6, 1),
('中国文化传媒', 'img/logo/zgwhcm.png', '', 7, 1)
ON DUPLICATE KEY UPDATE name=VALUES(name);
-- 插入默认VOD配置空配置需要后台填写
INSERT INTO vod_config (secret_id, secret_key, region)
VALUES ('', '', 'ap-guangzhou')
ON DUPLICATE KEY UPDATE id=id;
-- ========================================
-- 初始化完成
-- ========================================