1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| CREATE TABLE resource_versions ( id BIGINT PRIMARY KEY AUTO_INCREMENT, version VARCHAR(50) NOT NULL, platform ENUM('android','ios','pc') NOT NULL, channel VARCHAR(50), manifest_url VARCHAR(500), total_size BIGINT, is_active BOOLEAN DEFAULT TRUE, is_forced BOOLEAN DEFAULT FALSE, release_time DATETIME DEFAULT CURRENT_TIMESTAMP, description TEXT, UNIQUE KEY uniq_version_platform (version, platform, channel) );
CREATE TABLE resource_files ( id BIGINT PRIMARY KEY AUTO_INCREMENT, version_id BIGINT NOT NULL, file_path VARCHAR(500) NOT NULL, file_name VARCHAR(255) NOT NULL, file_size BIGINT NOT NULL, file_md5 CHAR(32) NOT NULL, storage_url VARCHAR(500) NOT NULL, cdn_url VARCHAR(500), is_diff BOOLEAN DEFAULT FALSE, base_version VARCHAR(50), download_priority INT DEFAULT 100, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (version_id) REFERENCES resource_versions(id) ON DELETE CASCADE, INDEX idx_version_id (version_id), INDEX idx_file_md5 (file_md5) );
CREATE TABLE client_update_logs ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id VARCHAR(100) NOT NULL, device_id VARCHAR(100) NOT NULL, old_version VARCHAR(50), new_version VARCHAR(50) NOT NULL, platform ENUM('android','ios','pc') NOT NULL, download_size BIGINT, total_time INT, network_type VARCHAR(20), success BOOLEAN DEFAULT TRUE, error_msg TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_user_device (user_id, device_id), INDEX idx_created_at (created_at) );
|