xk/backend/database/database.sql
2026-02-02 20:51:52 +08:00

137 lines
5.7 KiB
SQL
Raw 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.

-- ========================================
-- 虚境起源网站管理后台数据库初始化脚本
-- ========================================
-- 创建日期: 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;
-- ========================================
-- 初始化完成
-- ========================================