V5__add_client_distribution.sql 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. -- V5__add_client_distribution.sql
  2. -- 客户端 App 版本分发平台:分发表 + 版本表
  3. -- ==========================================
  4. -- Step 1: 创建客户端分发表
  5. -- ==========================================
  6. CREATE TABLE IF NOT EXISTS client_distributions (
  7. id INT AUTO_INCREMENT PRIMARY KEY,
  8. name VARCHAR(100) NOT NULL COMMENT '分发名称',
  9. description TEXT NULL COMMENT '分发描述',
  10. icon_url VARCHAR(255) NULL COMMENT '图标URL',
  11. owner_id INT NOT NULL COMMENT '创建者 user_id',
  12. is_deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除 0:否 1:是',
  13. created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  14. updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  15. INDEX idx_owner_id (owner_id),
  16. INDEX idx_is_deleted (is_deleted),
  17. CONSTRAINT fk_client_distributions_owner FOREIGN KEY (owner_id) REFERENCES users(id)
  18. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端分发表';
  19. -- ==========================================
  20. -- Step 2: 创建客户端版本表
  21. -- ==========================================
  22. CREATE TABLE IF NOT EXISTS client_versions (
  23. id INT AUTO_INCREMENT PRIMARY KEY,
  24. distribution_id INT NOT NULL COMMENT '分发ID',
  25. version_code VARCHAR(32) NOT NULL COMMENT '版本号如 1.2.3',
  26. version_name VARCHAR(100) NULL COMMENT '显示名称',
  27. release_notes TEXT NULL COMMENT '更新内容',
  28. object_key VARCHAR(512) NOT NULL COMMENT 'MinIO 对象键',
  29. file_size BIGINT NULL COMMENT '文件大小(字节)',
  30. platform VARCHAR(32) NULL COMMENT '平台 ios/android/windows',
  31. created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  32. INDEX idx_distribution_id (distribution_id),
  33. UNIQUE KEY uq_dist_version (distribution_id, version_code),
  34. CONSTRAINT fk_client_versions_distribution FOREIGN KEY (distribution_id) REFERENCES client_distributions(id) ON DELETE CASCADE
  35. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端版本表';