201 lines
14 KiB
SQL
201 lines
14 KiB
SQL
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='团队成员';
|