2025-12-09 11:10:36 +08:00
|
|
|
|
-- ============================================
|
|
|
|
|
|
-- 赛事管理模块数据库表结构
|
|
|
|
|
|
-- ============================================
|
|
|
|
|
|
|
|
|
|
|
|
-- 1. 赛事表
|
2025-11-23 14:04:20 +08:00
|
|
|
|
CREATE TABLE `t_contest` (
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`contest_name` varchar(127) NOT NULL COMMENT '赛事名称',
|
|
|
|
|
|
`contest_type` varchar(31) NOT NULL COMMENT '赛事类型,字典:contest_type:individual/team',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`contest_state` varchar(31) NOT NULL DEFAULT 'unpublished' COMMENT '赛事状态(未发布:unpublished 已发布:published)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`start_time` datetime NOT NULL COMMENT '赛事开始时间',
|
|
|
|
|
|
`end_time` datetime NOT NULL COMMENT '赛事结束时间',
|
|
|
|
|
|
`address` varchar(512) DEFAULT NULL COMMENT '线下地址',
|
|
|
|
|
|
`content` text COMMENT '赛事详情',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`contest_tenants` json DEFAULT NULL COMMENT '赛事参赛范围(授权租户ID数组)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`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 '联系人二维码',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`organizers` json DEFAULT NULL COMMENT '主办单位数组',
|
|
|
|
|
|
`co_organizers` json DEFAULT NULL COMMENT '协办单位数组',
|
|
|
|
|
|
`sponsors` json DEFAULT NULL COMMENT '赞助单位数组',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`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 '作品提交结束时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`review_rule_id` int DEFAULT NULL COMMENT '评审规则id',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`review_start_time` datetime NOT NULL COMMENT '评审开始时间',
|
|
|
|
|
|
`review_end_time` datetime NOT NULL COMMENT '评审结束时间',
|
|
|
|
|
|
`result_publish_time` datetime DEFAULT NULL COMMENT '结果发布时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
UNIQUE KEY `uk_contest_name` (`contest_name`),
|
|
|
|
|
|
KEY `idx_contest_state` (`contest_state`),
|
|
|
|
|
|
KEY `idx_contest_time` (`start_time`, `end_time`),
|
|
|
|
|
|
KEY `idx_review_rule` (`review_rule_id`)
|
2025-11-23 14:04:20 +08:00
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事表';
|
|
|
|
|
|
|
2025-12-09 11:10:36 +08:00
|
|
|
|
-- 2. 赛事附件表
|
2025-11-23 14:04:20 +08:00
|
|
|
|
CREATE TABLE `t_contest_attachment` (
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`file_name` varchar(100) NOT NULL COMMENT '文件名',
|
|
|
|
|
|
`file_url` varchar(255) NOT NULL COMMENT '文件路径',
|
|
|
|
|
|
`format` varchar(255) DEFAULT NULL COMMENT '文件类型(png,mp4)',
|
|
|
|
|
|
`file_type` varchar(255) DEFAULT NULL COMMENT '素材类型(image,video)',
|
|
|
|
|
|
`size` varchar(255) DEFAULT '0' COMMENT '文件大小',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
KEY `idx_contest` (`contest_id`)
|
2025-11-23 14:04:20 +08:00
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事附件';
|
|
|
|
|
|
|
2025-12-09 11:10:36 +08:00
|
|
|
|
-- 3. 评审规则表
|
|
|
|
|
|
CREATE TABLE `t_contest_review_rule` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`rule_name` varchar(127) NOT NULL COMMENT '规则名称',
|
|
|
|
|
|
`dimensions` json NOT NULL COMMENT '评分维度配置JSON',
|
|
|
|
|
|
`calculation_rule` varchar(31) DEFAULT 'average' COMMENT '计算规则:average/max/min/weighted',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
|
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
KEY `idx_contest` (`contest_id`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评审规则表';
|
|
|
|
|
|
|
|
|
|
|
|
-- 4. 赛事团队表
|
|
|
|
|
|
CREATE TABLE `t_contest_team` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`tenant_id` int NOT NULL COMMENT '团队所属租户ID',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`team_name` varchar(127) NOT NULL COMMENT '团队名称(租户内唯一)',
|
|
|
|
|
|
`leader_user_id` int NOT NULL COMMENT '团队负责人用户id',
|
|
|
|
|
|
`max_members` int DEFAULT NULL COMMENT '团队最大成员数',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
|
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
UNIQUE KEY `uk_team_name` (`tenant_id`,`contest_id`,`team_name`),
|
|
|
|
|
|
KEY `idx_contest` (`contest_id`),
|
|
|
|
|
|
KEY `idx_leader` (`leader_user_id`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事团队';
|
|
|
|
|
|
|
|
|
|
|
|
-- 5. 团队成员表
|
|
|
|
|
|
CREATE TABLE `t_contest_team_member` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`tenant_id` int NOT NULL COMMENT '成员所属租户ID',
|
|
|
|
|
|
`team_id` int NOT NULL COMMENT '团队id',
|
|
|
|
|
|
`user_id` int NOT NULL COMMENT '成员用户id',
|
|
|
|
|
|
`role` varchar(31) NOT NULL DEFAULT 'member' COMMENT '成员角色:member/leader/mentor',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
|
|
|
|
|
`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_id`,`team_id`,`user_id`),
|
|
|
|
|
|
KEY `idx_team` (`team_id`),
|
|
|
|
|
|
KEY `idx_user` (`user_id`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='团队成员';
|
|
|
|
|
|
|
|
|
|
|
|
-- 6. 赛事报名表
|
|
|
|
|
|
CREATE TABLE `t_contest_registration` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`tenant_id` int NOT NULL COMMENT '所属租户ID(学校/机构)',
|
|
|
|
|
|
`registration_type` varchar(20) DEFAULT NULL COMMENT '报名类型:individual(个人)/team(团队)',
|
|
|
|
|
|
`team_id` int DEFAULT NULL COMMENT '团队id',
|
|
|
|
|
|
`team_name` varchar(255) DEFAULT NULL COMMENT '团队名称快照(团队赛)',
|
|
|
|
|
|
`user_id` int 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 DEFAULT 'pending' COMMENT '报名状态:pending(待审核)、passed(已通过)、rejected(已拒绝)、withdrawn(已撤回)',
|
|
|
|
|
|
`registrant` int DEFAULT NULL COMMENT '实际报名人用户ID(老师报名填老师用户ID)',
|
|
|
|
|
|
`registration_time` datetime NOT NULL COMMENT '报名时间',
|
|
|
|
|
|
`reason` varchar(1023) DEFAULT NULL COMMENT '审核理由',
|
|
|
|
|
|
`operator` int DEFAULT NULL COMMENT '审核人用户ID',
|
|
|
|
|
|
`operation_date` datetime DEFAULT NULL COMMENT '审核时间',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
|
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
KEY `idx_contest_tenant` (`contest_id`, `tenant_id`),
|
|
|
|
|
|
KEY `idx_user_contest` (`user_id`, `contest_id`),
|
|
|
|
|
|
KEY `idx_team` (`team_id`),
|
|
|
|
|
|
KEY `idx_registration_state` (`registration_state`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='赛事报名人员记录表';
|
|
|
|
|
|
|
|
|
|
|
|
-- 7. 参赛作品表
|
2025-11-23 14:04:20 +08:00
|
|
|
|
CREATE TABLE `t_contest_work` (
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`tenant_id` int NOT NULL COMMENT '作品所属租户ID',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`registration_id` int NOT NULL COMMENT '报名记录id(关联t_contest_registration.id)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`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 '提交时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`submitter_user_id` int DEFAULT NULL COMMENT '提交人用户id',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`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建模元数据(模型类型、版本、参数)',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
UNIQUE KEY `uk_work_no` (`work_no`),
|
2025-12-09 11:10:36 +08:00
|
|
|
|
KEY `idx_work_contest_latest` (`tenant_id`,`contest_id`,`is_latest`),
|
|
|
|
|
|
KEY `idx_work_registration` (`registration_id`),
|
|
|
|
|
|
KEY `idx_submit_filter` (`tenant_id`,`contest_id`,`submit_time`,`status`),
|
|
|
|
|
|
KEY `idx_contest_status` (`contest_id`, `status`)
|
2025-11-23 14:04:20 +08:00
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='参赛作品';
|
|
|
|
|
|
|
2025-12-09 11:10:36 +08:00
|
|
|
|
-- 8. 作品附件文件表
|
2025-11-23 14:04:20 +08:00
|
|
|
|
CREATE TABLE `t_contest_work_attachment` (
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`tenant_id` int NOT NULL COMMENT '所属租户ID',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`work_id` int NOT NULL COMMENT '作品id',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`file_name` varchar(255) NOT NULL COMMENT '文件名',
|
|
|
|
|
|
`file_url` varchar(255) NOT NULL COMMENT '文件路径',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`format` varchar(255) DEFAULT NULL COMMENT '文件类型(png,mp4)',
|
|
|
|
|
|
`file_type` varchar(255) DEFAULT NULL COMMENT '素材类型(image,video)',
|
|
|
|
|
|
`size` varchar(255) DEFAULT '0' COMMENT '文件大小',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
2025-12-09 11:10:36 +08:00
|
|
|
|
KEY `idx_work_file` (`tenant_id`,`contest_id`,`work_id`)
|
2025-11-23 14:04:20 +08:00
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='作品附件文件表';
|
|
|
|
|
|
|
2025-12-09 11:10:36 +08:00
|
|
|
|
-- 9. 比赛评委关联表(比赛与评委的多对多关系)
|
|
|
|
|
|
CREATE TABLE `t_contest_judge` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '比赛id',
|
|
|
|
|
|
`judge_id` int NOT NULL COMMENT '评委用户id',
|
|
|
|
|
|
`specialty` varchar(255) DEFAULT NULL COMMENT '评审专业领域(可选)',
|
|
|
|
|
|
`weight` decimal(3,2) DEFAULT NULL COMMENT '评审权重(可选,用于加权平均计算)',
|
|
|
|
|
|
`description` text DEFAULT NULL COMMENT '评委在该比赛中的说明',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
PRIMARY KEY (`id`),
|
2025-12-09 11:10:36 +08:00
|
|
|
|
UNIQUE KEY `uk_contest_judge` (`contest_id`, `judge_id`),
|
|
|
|
|
|
KEY `idx_contest` (`contest_id`),
|
|
|
|
|
|
KEY `idx_judge` (`judge_id`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='比赛评委关联表';
|
2025-11-23 14:04:20 +08:00
|
|
|
|
|
2025-12-09 11:10:36 +08:00
|
|
|
|
-- 10. 作品分配表(评委分配作品)
|
|
|
|
|
|
CREATE TABLE `t_contest_work_judge_assignment` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`work_id` int NOT NULL COMMENT '作品id',
|
|
|
|
|
|
`judge_id` int NOT NULL COMMENT '评委用户id',
|
|
|
|
|
|
`assignment_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '分配时间',
|
|
|
|
|
|
`status` varchar(31) NOT NULL DEFAULT 'assigned' COMMENT '分配状态:assigned/reviewing/completed',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
|
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
|
UNIQUE KEY `uk_work_judge` (`work_id`, `judge_id`),
|
|
|
|
|
|
KEY `idx_contest_judge` (`contest_id`, `judge_id`),
|
|
|
|
|
|
KEY `idx_work` (`work_id`),
|
|
|
|
|
|
KEY `idx_status` (`status`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='作品分配表';
|
|
|
|
|
|
|
|
|
|
|
|
-- 11. 作品评分表
|
2025-11-23 14:04:20 +08:00
|
|
|
|
CREATE TABLE `t_contest_work_score` (
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`tenant_id` int NOT NULL COMMENT '所属租户ID',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`work_id` int NOT NULL COMMENT '作品id',
|
|
|
|
|
|
`assignment_id` int NOT NULL COMMENT '分配记录id(关联t_contest_work_judge_assignment)',
|
|
|
|
|
|
`judge_id` int NOT NULL COMMENT '评委用户id',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`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 '评分时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
PRIMARY KEY (`id`),
|
2025-12-09 11:10:36 +08:00
|
|
|
|
KEY `idx_contest_work_judge` (`contest_id`, `work_id`, `judge_id`),
|
|
|
|
|
|
KEY `idx_work` (`work_id`),
|
|
|
|
|
|
KEY `idx_assignment` (`assignment_id`)
|
2025-11-23 14:04:20 +08:00
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='作品评分表';
|
|
|
|
|
|
|
2025-12-09 11:10:36 +08:00
|
|
|
|
-- 12. 赛事公告表
|
|
|
|
|
|
CREATE TABLE `t_contest_notice` (
|
|
|
|
|
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
|
|
|
|
|
`contest_id` int NOT NULL COMMENT '赛事id',
|
|
|
|
|
|
`title` varchar(255) NOT NULL COMMENT '公告标题',
|
|
|
|
|
|
`content` text NOT NULL COMMENT '公告内容',
|
|
|
|
|
|
`notice_type` varchar(31) NOT NULL DEFAULT 'manual' COMMENT '公告类型:system/manual/urgent',
|
|
|
|
|
|
`priority` int DEFAULT 0 COMMENT '优先级(数字越大优先级越高)',
|
|
|
|
|
|
`publish_time` datetime DEFAULT NULL COMMENT '发布时间',
|
|
|
|
|
|
`creator` int DEFAULT NULL COMMENT '创建人ID',
|
|
|
|
|
|
`modifier` int DEFAULT NULL COMMENT '修改人ID',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
|
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
2025-12-09 11:10:36 +08:00
|
|
|
|
`valid_state` int NOT NULL DEFAULT 1 COMMENT '有效状态(1-有效,2-失效)',
|
2025-11-23 14:04:20 +08:00
|
|
|
|
PRIMARY KEY (`id`),
|
2025-12-09 11:10:36 +08:00
|
|
|
|
KEY `idx_contest` (`contest_id`),
|
|
|
|
|
|
KEY `idx_publish_time` (`publish_time`),
|
|
|
|
|
|
KEY `idx_notice_type` (`notice_type`)
|
|
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='赛事公告表';
|