CREATE TABLE `t_contest` ( `contest_id` varchar(63) NOT NULL COMMENT '主键id', `contest_name` varchar(127) NOT NULL COMMENT '赛事名称', `contest_type` varchar(31) NOT NULL COMMENT '赛事类型,字典:contest_type:individual/team', `contest_state` varchar(31) NOT NULL COMMENT '赛事状态(未发布: unpublished 已发布: published'), `start_time` datetime NOT NULL COMMENT '赛事开始时间', `end_time` datetime NOT NULL COMMENT '赛事结束时间', `address` varchar(512) DEFAULT NULL COMMENT '线下地址', `content` text COMMENT '赛事详情', `contest_tenant` text COMMENT '赛事参赛范围(授权租户)', `cover_url` varchar(255) DEFAULT NULL COMMENT '封面url', `poster_url` varchar(255) DEFAULT NULL COMMENT '海报url', `contact_name` varchar(63) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(63) DEFAULT NULL COMMENT '联系电话', `contact_qrcode` varchar(255) DEFAULT NULL COMMENT '联系人二维码', `organizers` text DEFAULT NULL COMMENT '主办单位数组', `co_organizers` text DEFAULT NULL COMMENT '协办单位数组', `sponsors` text DEFAULT NULL COMMENT '赞助单位数组', `register_start_time` datetime NOT NULL COMMENT '报名开始时间', `register_end_time` datetime NOT NULL COMMENT '报名结束时间', `register_state` varchar(31) DEFAULT NULL COMMENT '报名任务状态,映射写死:启动(started),已关闭(closed)', `submit_rule` varchar(31) NOT NULL DEFAULT 'once' COMMENT '提交规则:once/resubmit', `submit_start_time` datetime NOT NULL COMMENT '作品提交开始时间', `submit_end_time` datetime NOT NULL COMMENT '作品提交结束时间', `review_rule_id` varchar(63) DEFAULT NULL COMMENT '评审规则id', `review_start_time` datetime NOT NULL COMMENT '评审开始时间', `review_end_time` datetime NOT NULL COMMENT '评审结束时间', `result_publish_time` datetime DEFAULT NULL COMMENT '结果发布时间', `creator` varchar(63) NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(63) NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `valid_state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '有效状态(1-有效,2-失效)', PRIMARY KEY (`contest_id`) USING BTREE, UNIQUE KEY `uk_contest_name` (`contest_name`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事表'; CREATE TABLE `t_contest_attachment` ( `id` varchar(63) NOT NULL, `contest_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '赛事id', `file_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名', `file_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径', `format` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件类型(png,mp4)', `file_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '素材类型(image,video)', `size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '文件大小', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `valid_state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '有效状态(1-有效,2-失效)', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事附件'; CREATE TABLE `t_contest_work` ( `id` varchar(63) NOT NULL COMMENT '主键id', `tenant_key` varchar(127) NOT NULL COMMENT '作品所属租户键', `contest_id` varchar(63) NOT NULL COMMENT '赛事id', `entry_id` varchar(63) NOT NULL COMMENT '参赛报名实体id', `work_no` varchar(63) DEFAULT NULL COMMENT '作品编号(展示用唯一编号)', `title` varchar(255) NOT NULL COMMENT '作品标题', `description` text DEFAULT NULL COMMENT '作品说明', `files` json DEFAULT NULL COMMENT '作品文件列表(简易场景)', `version` int NOT NULL DEFAULT 1 COMMENT '作品版本号(递增)', `is_latest` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否最新版本:1是/0否', `status` varchar(31) NOT NULL DEFAULT 'submitted' COMMENT '作品状态:submitted/locked/reviewing/rejected/accepted', `submit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '提交时间', `submitter_user_id` varchar(63) DEFAULT NULL COMMENT '提交人用户id', `submitter_account_no` varchar(127) DEFAULT NULL COMMENT '提交人账号(手机号/学号)', `submit_source` varchar(31) NOT NULL DEFAULT 'teacher' COMMENT '提交来源:teacher/student/team_leader', `preview_url` varchar(255) DEFAULT NULL COMMENT '作品预览URL(3D/视频)', `ai_model_meta` json DEFAULT NULL COMMENT 'AI建模元数据(模型类型、版本、参数)', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `valid_state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '有效状态(1-有效,2-失效)', PRIMARY KEY (`id`), UNIQUE KEY `uk_work_no` (`work_no`), KEY `idx_work_contest_latest` (`tenant_key`,`contest_id`,`is_latest`), KEY `idx_work_entry` (`entry_id`), KEY `idx_submit_filter` (`tenant_key`,`contest_id`,`submit_time`,`review_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='参赛作品'; CREATE TABLE `t_contest_work_attachment` ( `id` varchar(63) NOT NULL COMMENT '主键id', `tenant_key` varchar(127) NOT NULL COMMENT '所属租户键', `contest_id` varchar(63) NOT NULL COMMENT '赛事id', `work_id` varchar(63) NOT NULL COMMENT '作品id', `file_name` varchar(255) NOT NULL COMMENT '文件名', `file_url` varchar(255) NOT NULL COMMENT '文件路径', `format` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件类型(png,mp4)', `file_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '素材类型(image,video)', `size` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '文件大小', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_work_file` (`tenant_key`,`contest_id`,`work_id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='作品附件文件表'; CREATE TABLE `t_contest_work_score` ( `id` varchar(63) NOT NULL COMMENT '主键id', `tenant_key` varchar(127) NOT NULL COMMENT '所属租户键', `contest_id` varchar(63) NOT NULL COMMENT '赛事id', `work_id` varchar(63) NOT NULL COMMENT '作品id', `assignment_id` varchar(63) NOT NULL COMMENT '分配记录id(关联t_contest_work_judge_assignment)', `judge_id` varchar(63) NOT NULL COMMENT '评委账号id', `judge_name` varchar(127) NOT NULL COMMENT '评委姓名', `dimension_scores` json NOT NULL COMMENT '各维度评分JSON,格式:{"dimension1": 85, "dimension2": 90, ...}', `total_score` decimal(10,2) NOT NULL COMMENT '总分(根据评审规则计算)', `comments` text DEFAULT NULL COMMENT '评语', `score_time` datetime NOT NULL COMMENT '评分时间', `creator` varchar(63) NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(63) NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `valid_state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '有效状态(1-有效,2-失效)', PRIMARY KEY (`id`), KEY `idx_contest_work_final` (`contest_id`, `work_id`, `judge_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='作品评分表'; CREATE TABLE `t_contest_work_score` ( `id` varchar(63) NOT NULL COMMENT '主键id', `tenant_key` varchar(127) NOT NULL COMMENT '所属租户键', `contest_id` varchar(63) NOT NULL COMMENT '赛事id', `work_id` varchar(63) NOT NULL COMMENT '作品id', `assignment_id` varchar(63) NOT NULL COMMENT '分配记录id(关联t_contest_work_judge_assignment)', `judge_id` varchar(63) NOT NULL COMMENT '评委账号id', `judge_name` varchar(127) NOT NULL COMMENT '评委姓名', `dimension_scores` json NOT NULL COMMENT '各维度评分JSON,格式:{"dimension1": 85, "dimension2": 90, ...}', `total_score` decimal(10,2) NOT NULL COMMENT '总分(根据评审规则计算)', `comments` text DEFAULT NULL COMMENT '评语', `score_time` datetime NOT NULL COMMENT '评分时间', `creator` varchar(63) NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(63) NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `valid_state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '有效状态(1-有效,2-失效)', PRIMARY KEY (`id`), KEY `idx_contest_work_final` (`contest_id`, `work_id`, `judge_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='作品评分表'; CREATE TABLE `t_contest_registration` ( `id` varchar(63) NOT NULL COMMENT '主键id', `contest_id` varchar(63) NOT NULL COMMENT '赛事id', `tenant_key` varchar(64) NOT NULL COMMENT '所属租户键(学校/机构)', `registration_type` varchar(20) DEFAULT NULL COMMENT '报名类型:individual(个人)/team(团队)', `team_id` varchar(64) DEFAULT NULL COMMENT '团队id', `team_name` varchar(255) DEFAULT NULL COMMENT '团队名称快照(团队赛)', `account_id` varchar(64) NOT NULL COMMENT '账号id', `account_no` varchar(64) NOT NULL COMMENT '报名账号(记录报名快照)', `account_name` varchar(100) NOT NULL COMMENT '报名账号名称(记录报名快照)', `role` varchar(63) DEFAULT NULL COMMENT '报名角色快照:leader(队长)/member(队员)/mentor(指导教师)', `registration_state` varchar(31) NOT NULL COMMENT '报名状态:pending(待审核)、passed(已通过)、rejected(已拒绝)、withdrawn(已撤回)', `registrant` varchar(63) DEFAULT NULL COMMENT '实际报名人(老师报名填老师账号)', `registration_time` datetime NOT NULL COMMENT '报名时间', `reason` varchar(1023) DEFAULT NULL COMMENT '审核理由', `operator` varchar(64) DEFAULT NULL COMMENT '审核人', `operation_date` datetime DEFAULT NULL COMMENT '审核时间', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='赛事报名人员记录表'; CREATE TABLE `t_contest_team` ( `id` varchar(63) NOT NULL COMMENT '主键id', `tenant_key` varchar(127) NOT NULL COMMENT '团队所属租户键', `contest_id` varchar(63) NOT NULL COMMENT '赛事id', `team_name` varchar(127) NOT NULL COMMENT '团队名称(租户内唯一)', `leader_account_id` varchar(63) NOT NULL COMMENT '团队负责人用户id', `max_members` int DEFAULT NULL COMMENT '团队最大成员数', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `valid_state` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '有效状态(1-有效,2-失效)', PRIMARY KEY (`id`), UNIQUE KEY `uk_team_name` (`tenant_key`,`contest_id`,`name`), KEY `idx_contest` (`contest_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事团队'; CREATE TABLE `t_contest_team_member` ( `id` varchar(63) NOT NULL COMMENT '主键id', `tenant_key` varchar(127) NOT NULL COMMENT '成员所属租户键', `team_id` varchar(63) NOT NULL COMMENT '团队id', `account_id` varchar(63) NOT NULL COMMENT '成员用户id', `role` varchar(31) NOT NULL DEFAULT 'member' COMMENT '成员角色:member/leader/mentor', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人', `modifier` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_member_once` (`tenant_key`,`team_id`,`account_id`), KEY `idx_team` (`team_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='团队成员';