-- VPS 厂商池(先建,nodes 有 FK 引用) CREATE TABLE providers ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, api_kind VARCHAR(32) NOT NULL, -- 开通自动化所用 API 适配器 regions JSON NOT NULL, pool ENUM('consumable','premium') NOT NULL, enabled BOOLEAN NOT NULL DEFAULT TRUE, note VARCHAR(255) NULL -- 凭证不入库,存独立 secrets 管理 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 节点:蓝本 nodes 表 + 拓扑/生命周期扩展字段 CREATE TABLE nodes ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, uuid CHAR(36) NOT NULL UNIQUE, region VARCHAR(8) NOT NULL, -- HK / JP / SG / US… name_zh VARCHAR(64) NOT NULL, name_en VARCHAR(64) NOT NULL, role ENUM('entry','relay','exit') NOT NULL DEFAULT 'entry', tier ENUM('free','pro') NOT NULL, -- 消耗品池 / 精品池 endpoint VARCHAR(255) NOT NULL, -- ip:port(REALITY) hy2_port INT NULL, -- Hysteria2 端口跳跃区间起点 reality_pbk VARCHAR(64) NOT NULL, reality_sni VARCHAR(128) NOT NULL, -- 伪装目标 SNI provider_id BIGINT UNSIGNED NOT NULL, tags JSON NULL, status ENUM('provisioning','probing','up','draining','down','destroyed') NOT NULL DEFAULT 'provisioning', -- 生命周期状态机 weight INT NOT NULL DEFAULT 100, created_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), FOREIGN KEY (provider_id) REFERENCES providers(id), INDEX idx_status_tier (status, tier) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;