-- 数据库 CREATE DATABASE IF NOT EXISTS link_manager DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE link_manager; -- 用户表 CREATE TABLE IF NOT EXISTS users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 主链接表 CREATE TABLE IF NOT EXISTS main_links ( id INT(11) NOT NULL AUTO_INCREMENT, user_id INT(11) NOT NULL, slug VARCHAR(50) NOT NULL UNIQUE, name VARCHAR(100) NOT NULL, mode ENUM('sequence', 'count') NOT NULL DEFAULT 'sequence', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 目标链接表 CREATE TABLE IF NOT EXISTS target_links ( id INT(11) NOT NULL AUTO_INCREMENT, main_id INT(11) NOT NULL, url VARCHAR(255) NOT NULL, name VARCHAR(100) NOT NULL, count INT(11) NOT NULL DEFAULT 1, sort_order INT(11) NOT NULL DEFAULT 0, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), FOREIGN KEY (main_id) REFERENCES main_links(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 访问统计表 CREATE TABLE IF NOT EXISTS stats ( id INT(11) NOT NULL AUTO_INCREMENT, target_id INT(11) NOT NULL, ip VARCHAR(45) NOT NULL, user_agent TEXT, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), FOREIGN KEY (target_id) REFERENCES target_links(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 当前位置表(用于顺序模式) CREATE TABLE IF NOT EXISTS current_position ( main_id INT(11) NOT NULL UNIQUE, target_id INT(11) NOT NULL, hit_count INT(11) NOT NULL DEFAULT 0, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (main_id), FOREIGN KEY (main_id) REFERENCES main_links(id) ON DELETE CASCADE, FOREIGN KEY (target_id) REFERENCES target_links(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;