-- 创建程序分类表
CREATE TABLE `yz_program_category` (
  `category_id` INT NOT NULL AUTO_INCREMENT COMMENT '分类ID',
  `category_name` VARCHAR(100) NOT NULL COMMENT '分类名称',
  `category_desc` VARCHAR(500) DEFAULT NULL COMMENT '分类描述',
  `parent_id` INT DEFAULT 0 COMMENT '父分类ID，0表示顶级分类',
  `sort_order` INT DEFAULT 0 COMMENT '排序序号，用于展示顺序',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`category_id`),
  KEY `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='程序分类表';

-- 创建程序信息表
CREATE TABLE `yz_program_info` (
  `program_id` INT NOT NULL AUTO_INCREMENT COMMENT '程序ID',
  `category_id` INT NOT NULL COMMENT '所属分类ID',
  `program_name` VARCHAR(200) NOT NULL COMMENT '程序名称',
  `program_desc` TEXT COMMENT '程序描述',
  `jump_url` VARCHAR(1000) NOT NULL COMMENT '跳转地址',
  `icon_url` VARCHAR(1000) DEFAULT NULL COMMENT '程序图标地址',
  `version` VARCHAR(50) DEFAULT NULL COMMENT '程序版本',
  `status` TINYINT DEFAULT 1 COMMENT '状态：0-禁用，1-启用',
  `sort_order` INT DEFAULT 0 COMMENT '排序序号，用于展示顺序',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`program_id`),
  KEY `idx_category_id` (`category_id`),
  KEY `idx_status` (`status`),
  CONSTRAINT `yz_fk_program_category` FOREIGN KEY (`category_id`) REFERENCES `yz_program_category` (`category_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='程序信息表';
