library-picturebook-activity/backend/sql/competition.sql
2025-11-23 14:04:20 +08:00

201 lines
14 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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_typeindividual/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 '作品预览URL3D/视频)',
`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='团队成员';