-- 设置会话变量
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- 创建数据库（如果不存在）
CREATE DATABASE IF NOT EXISTS `technological_brain` 
DEFAULT CHARACTER SET utf8mb4 
COLLATE utf8mb4_general_ci;

USE `technological_brain`;

-- 开启事务
START TRANSACTION;

-- ----------------------------
-- 系统相关表
-- ----------------------------

-- 用户表
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `username` varchar(50) NOT NULL COMMENT '用户名',
    `password` varchar(100) NOT NULL COMMENT '密码',
    `real_name` varchar(50) DEFAULT NULL COMMENT '真实姓名',
    `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
    `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
    `avatar` varchar(255) DEFAULT NULL COMMENT '头像URL',
    `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态：0-禁用，1-启用',
    `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
    `last_login_ip` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_username` (`username`),
    KEY `idx_status` (`status`),
    KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统用户表';

-- 角色表
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `role_name` varchar(50) NOT NULL COMMENT '角色名称',
    `role_code` varchar(50) NOT NULL COMMENT '角色编码',
    `role_desc` varchar(200) DEFAULT NULL COMMENT '角色描述',
    `login_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '登录类型：1-仅展示端，2-展示端和后台',
    `sort` int(11) DEFAULT '0' COMMENT '排序',
    `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态：0-禁用，1-启用',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_role_code` (`role_code`),
    KEY `idx_status` (`status`),
    KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统角色表';

-- 权限表
DROP TABLE IF EXISTS `sys_permission`;
CREATE TABLE `sys_permission` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `permission_name` varchar(50) NOT NULL COMMENT '权限名称',
    `permission_code` varchar(50) NOT NULL COMMENT '权限编码',
    `permission_type` tinyint(1) NOT NULL COMMENT '权限类型：1-菜单，2-按钮，3-接口',
    `parent_id` varchar(32) DEFAULT NULL COMMENT '父权限ID',
    `path` varchar(200) DEFAULT NULL COMMENT '路径',
    `component` varchar(200) DEFAULT NULL COMMENT '前端组件',
    `icon` varchar(100) DEFAULT NULL COMMENT '图标',
    `sort` int(11) DEFAULT '0' COMMENT '排序',
    `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态：0-禁用，1-启用',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_permission_code` (`permission_code`),
    KEY `idx_parent_id` (`parent_id`),
    KEY `idx_status` (`status`),
    KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统权限表';

-- 用户角色关联表
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `user_id` varchar(32) NOT NULL COMMENT '用户ID',
    `role_id` varchar(32) NOT NULL COMMENT '角色ID',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_user_role` (`user_id`,`role_id`),
    KEY `idx_role_id` (`role_id`),
    CONSTRAINT `fk_ur_user_id` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_ur_role_id` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户角色关联表';

-- 角色权限关联表
DROP TABLE IF EXISTS `sys_role_permission`;
CREATE TABLE `sys_role_permission` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `role_id` varchar(32) NOT NULL COMMENT '角色ID',
    `permission_id` varchar(32) NOT NULL COMMENT '权限ID',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_role_permission` (`role_id`,`permission_id`),
    KEY `idx_permission_id` (`permission_id`),
    CONSTRAINT `fk_rp_role_id` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_rp_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `sys_permission` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色权限关联表';

-- 参数表
DROP TABLE IF EXISTS `sys_param`;
CREATE TABLE `sys_param` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `param_type` varchar(20) NOT NULL COMMENT '参数类型',
    `param_name` varchar(50) NOT NULL COMMENT '参数名称',
    `param_value` varchar(100) DEFAULT NULL COMMENT '参数值',
    `data_type` varchar(10) NOT NULL DEFAULT 'STRING' COMMENT '数据类型：STRING-字符串，NUMBER-数字，BOOLEAN-布尔值，DATE-日期',
    `sort_order` int(11) DEFAULT 0 COMMENT '排序号',
    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态：0-禁用，1-启用',
    `flag` tinyint(1) NOT NULL DEFAULT 0 COMMENT '标识：0-未删除，1-已删除',
    `remark` varchar(200) DEFAULT NULL COMMENT '备注',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_param_type_name` (`param_type`, `param_name`),
    KEY `idx_param_type` (`param_type`),
    KEY `idx_status` (`status`),
    KEY `idx_sort_order` (`sort_order`),
    CONSTRAINT `fk_param_type` FOREIGN KEY (`param_type`) REFERENCES `sys_param_type` (`type_code`) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统参数表';

-- 参数类型表
DROP TABLE IF EXISTS `sys_param_type`;
CREATE TABLE `sys_param_type` (
    `id` varchar(32) NOT NULL COMMENT '主键ID',
    `type_code` varchar(20) NOT NULL COMMENT '类型编码',
    `type_name` varchar(50) NOT NULL COMMENT '类型名称',
    `sort_order` int(11) DEFAULT 0 COMMENT '排序号',
    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态：0-禁用，1-启用',
    `flag` tinyint(1) NOT NULL DEFAULT 0 COMMENT '标识：0-未删除，1-已删除',
    `remark` varchar(200) DEFAULT NULL COMMENT '备注',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_type_code` (`type_code`),
    KEY `idx_status` (`status`),
    KEY `idx_sort_order` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='参数类型表';

-- ----------------------------
-- 业务相关表
-- ----------------------------

-- 人才基本信息表
DROP TABLE IF EXISTS `talent_basic`;
CREATE TABLE `talent_basic` (
    `id` varchar(32) NOT NULL COMMENT '人才id',
    `name` varchar(50) NOT NULL COMMENT '姓名',
    `sex` tinyint(1) DEFAULT NULL COMMENT '性别(0-男，1-女)',
    `birth_date` date DEFAULT NULL COMMENT '出生日期',
    `unit_id` varchar(32) DEFAULT NULL COMMENT '单位id',
    `unit_type` varchar(20) DEFAULT NULL COMMENT '单位类型：school-高校，company-企业',
    `highest_edu` varchar(20) DEFAULT NULL COMMENT '最高学历',
    `highest_school` varchar(100) DEFAULT NULL COMMENT '最高学历毕业学校',
    `classify_grade` varchar(20) DEFAULT NULL COMMENT '分类定级人才',
    `title` varchar(20) DEFAULT NULL COMMENT '职称',
    `region` varchar(12) NOT NULL COMMENT '地区编码',
    `image` varchar(255) DEFAULT NULL COMMENT '照片',
    `highest_position` varchar(20) DEFAULT NULL COMMENT '最高技术职务资格',
    `entry_date` date NOT NULL COMMENT '入职时间',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    KEY `idx_name` (`name`),
    KEY `idx_unit_id` (`unit_id`),
    KEY `idx_highest_edu` (`highest_edu`),
    KEY `idx_classify_grade` (`classify_grade`),
    KEY `idx_title` (`title`),
    KEY `idx_highest_position` (`highest_position`),
    KEY `idx_create_time` (`create_time`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='人才基本信息表';

-- 工作单位信息表
DROP TABLE IF EXISTS `employment_unit`;
CREATE TABLE `employment_unit` (
    `id` varchar(32) NOT NULL COMMENT '工作单位id',
    `unit_name` varchar(100) NOT NULL COMMENT '工作单位名称',
    `unit_address` varchar(100) NOT NULL COMMENT '工作单位地址',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    KEY `idx_unit_name` (`unit_name`),
    KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工作单位信息表';

-- 科研项目信息表
DROP TABLE IF EXISTS `research_project`;
CREATE TABLE `research_project` (
    `id` varchar(32) NOT NULL COMMENT '项目ID',
    `name` varchar(255) NOT NULL COMMENT '项目名称',
    `title_en` varchar(255) DEFAULT NULL COMMENT '项目名称英文版',
    `project_type` varchar(20) DEFAULT NULL COMMENT '项目类型',
    `keyword_original` varchar(100) DEFAULT NULL COMMENT '检索关键词',
    `keyword_en` varchar(255) DEFAULT NULL COMMENT '检索关键词英文',
    `summary_cn` text COMMENT '摘要',
    `summary_en` text COMMENT '摘要英文',
    `funding` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '预算/财政拨款',
    `currency_code` char(3) NOT NULL DEFAULT 'CNY' COMMENT '货币代码',
    `funding_dollar` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '项目金额(美元)',
    `apply_year` year DEFAULT NULL COMMENT '申请年份',
    `plan_start_date` date DEFAULT NULL COMMENT '项目启动时间',
    `plan_end_date` date DEFAULT NULL COMMENT '项目终止时间',
    `undertake_unit_id` varchar(32) DEFAULT NULL COMMENT '承担单位id',
    `undertake_unit_state` varchar(50) DEFAULT NULL COMMENT '省份',
    `undertake_unit_country` varchar(50) DEFAULT NULL COMMENT '国家',
    `funder_name` varchar(50) DEFAULT NULL COMMENT '资金名称',
    `funder_group` varchar(50) DEFAULT NULL COMMENT '资金来源组织',
    `funder_country` varchar(30) DEFAULT NULL COMMENT '资金国家',
    `primary_subject` varchar(20) DEFAULT NULL COMMENT '学科大类（第一学科）',
    `sub_subject` varchar(20) DEFAULT NULL COMMENT '学科小类',
    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态：1-草稿，2-已发布',
    `flag` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除：0-未删除，1-已删除',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    KEY `idx_name` (`name`),
    KEY `idx_apply_year` (`apply_year`),
    KEY `idx_project_type` (`project_type`),
    KEY `idx_status` (`status`),
    KEY `idx_create_time` (`create_time`),
    KEY `idx_undertake_unit_id` (`undertake_unit_id`),
    CONSTRAINT `fk_rp_undertake_unit_id` FOREIGN KEY (`undertake_unit_id`) REFERENCES `employment_unit` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='科研项目信息表';

-- 科研项目人才业务关联表
DROP TABLE IF EXISTS `research_project_talent`;
CREATE TABLE `research_project_talent` (
    `id` varchar(32) NOT NULL COMMENT '立项项目id',
    `project_id` varchar(32) NOT NULL COMMENT '项目编号',
    `talent_id` varchar(32) NOT NULL COMMENT '人才id',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    KEY `idx_project_id` (`project_id`),
    KEY `idx_talent_id` (`talent_id`),
    CONSTRAINT `fk_rpt_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_rpt_project_id` FOREIGN KEY (`project_id`) REFERENCES `research_project` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='科研项目人才信息表';

-- 科技报告信息表
DROP TABLE IF EXISTS `tech_report`;
CREATE TABLE `tech_report` (
    `id` varchar(32) NOT NULL COMMENT '报告id',
    `project_id` varchar(50) NOT NULL COMMENT '项目id',
    `report_name_cn` varchar(200) NOT NULL COMMENT '报告名称(中文)',
    `report_name` varchar(200) NOT NULL COMMENT '报告名称(英文)',
    `author_cn` varchar(50) NOT NULL COMMENT '作者（中文）',
    `author_en` varchar(50) NOT NULL COMMENT '作者（英文）',
    `workplace_cn` varchar(200) NOT NULL COMMENT '作者单位(中文)',
    `workplace_en` varchar(200) NOT NULL COMMENT '作者单位(英文)',
    `keyword_cn` varchar(100) NOT NULL COMMENT '关键词（中文）',
    `keyword_en` varchar(100) NOT NULL COMMENT '关键词（英文）',
    `summary_cn` text NOT NULL COMMENT '摘要（中文）',
    `summary_en` text NOT NULL COMMENT '摘要（英文）',
    `writing_time` datetime NOT NULL COMMENT '编撰时间',
    `institution` varchar(100) NOT NULL COMMENT '支持机构',
    `report_type` varchar(20) DEFAULT NULL COMMENT '报告类型',
    `channel` varchar(100) NOT NULL COMMENT '支持渠道',
    `is_public` enum('是','否') NOT NULL COMMENT '是否公开',
    `status` enum('草稿','已发布') NOT NULL COMMENT '报告状态',
    `report_path` varchar(255) DEFAULT NULL COMMENT '报告全文路径',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    KEY `idx_project_id` (`project_id`),
    KEY `idx_report_name_cn` (`report_name_cn`),
    KEY `idx_writing_time` (`writing_time`),
    KEY `idx_report_type` (`report_type`),
    KEY `idx_status` (`status`),
    KEY `idx_create_time` (`create_time`),
    CONSTRAINT `fk_tr_project_id` FOREIGN KEY (`project_id`) REFERENCES `research_project` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='科技报告信息表';

-- 人才报告关联表
DROP TABLE IF EXISTS `talent_report`;
CREATE TABLE `talent_report` (
    `id` varchar(32) NOT NULL COMMENT '人才报告关联表id',
    `talent_id` varchar(32) NOT NULL COMMENT '人才id',
    `report_id` varchar(32) NOT NULL COMMENT '报告id',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    KEY `idx_report_id` (`report_id`),
    KEY `idx_talent_id` (`talent_id`),
    CONSTRAINT `fk_tr_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_tr_report_id` FOREIGN KEY (`report_id`) REFERENCES `tech_report` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='人才报告关联表';

-- 学术奖励信息表
DROP TABLE IF EXISTS `academic_award`;
CREATE TABLE `academic_award` (
    `id` varchar(32) NOT NULL COMMENT '奖项id',
    `talent_id` varchar(32) NOT NULL COMMENT '人才id',
    `award_name` varchar(100) NOT NULL COMMENT '奖励名称',
    `award_level` varchar(20) NOT NULL COMMENT '奖励级别',
    `award_time` date NOT NULL COMMENT '授予时间',
    `awarding_agency` varchar(100) NOT NULL COMMENT '授予机构',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    KEY `idx_talent_id` (`talent_id`),
    KEY `idx_award_level` (`award_level`),
    KEY `idx_award_time` (`award_time`),
    KEY `idx_create_time` (`create_time`),
    CONSTRAINT `fk_aa_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='学术奖励信息表';

-- 企业信息表
DROP TABLE IF EXISTS `enterprise_info`;
CREATE TABLE `enterprise_info` (
    `id` varchar(32) NOT NULL COMMENT '企业id',
    `taxpayer_id` varchar(20) NOT NULL COMMENT '纳税人识别号',
    `company_name` varchar(255) DEFAULT NULL COMMENT '企业名称',
    `company_type` varchar(50) DEFAULT NULL COMMENT '企业类型',
    `is_high_tech_certified` tinyint(1) DEFAULT NULL COMMENT '是否高新技术企业认证（0：否，1：是）',
    `qualification_certificate` text COMMENT '资质证书',
    `company_status` varchar(50) DEFAULT NULL COMMENT '企业状态参数表COMPANY_STATUS）',
    `legal_representative_name` varchar(32) DEFAULT NULL COMMENT '法定代表人姓名',
    `registered_capital` varchar(255) DEFAULT NULL COMMENT '注册资本',
    `company_address` varchar(255) DEFAULT NULL COMMENT '企业地址',
    `province` varchar(50) DEFAULT NULL COMMENT '所属省份',
    `city` varchar(50) DEFAULT NULL COMMENT '所属城市',
    `district` varchar(50) DEFAULT NULL COMMENT '所属区域',
    `industry` varchar(20) DEFAULT NULL COMMENT '所属行业',
    `establishment_date` date DEFAULT NULL COMMENT '成立日期',
    `employee_count` int DEFAULT NULL COMMENT '员工人数',
    `website` varchar(255) DEFAULT NULL COMMENT '网址',
    `business_scope` text COMMENT '经营范围',
    `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
    `contact_email` varchar(100) DEFAULT NULL COMMENT '联系邮箱',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    KEY `idx_company_name` (`company_name`),
    KEY `idx_company_status` (`company_status`),
    KEY `idx_create_time` (`create_time`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业信息表';

-- 荣誉称号信息表
DROP TABLE IF EXISTS `honorary_title`;
CREATE TABLE `honorary_title` (
    `id` varchar(32) NOT NULL COMMENT '荣誉ID',
    `talent_id` varchar(32) NOT NULL COMMENT '人才ID',
    `honor_title` varchar(100) NOT NULL COMMENT '荣誉称号',
    `award_time` date NOT NULL COMMENT '授予时间',
    `awarding_agency` varchar(100) NOT NULL COMMENT '授予机构',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    KEY `idx_talent_id` (`talent_id`),
    KEY `idx_award_time` (`award_time`),
    KEY `idx_create_time` (`create_time`),
    CONSTRAINT `fk_ht_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='荣誉称号信息表';

-- 论文专著信息表
DROP TABLE IF EXISTS `papers_and_monographs`;
CREATE TABLE `papers_and_monographs` (
    `id` varchar(32) NOT NULL COMMENT '论文专著ID',
    `talent_id` varchar(32) NOT NULL COMMENT '人才ID',
    `title` varchar(200) NOT NULL COMMENT '标题',
    `publication_time` datetime NOT NULL COMMENT '发表时间',
    `journal_name` varchar(100) NOT NULL COMMENT '刊物名称',
    `volume_number` varchar(20) NOT NULL COMMENT '卷号',
    `issue_number` varchar(20) NOT NULL COMMENT '期号',
    `page_range` varchar(20) NOT NULL COMMENT '页码',
    `doi` varchar(50) NOT NULL COMMENT 'DOI号',
    `work_type` varchar(20) NOT NULL COMMENT '著作类型(参数表WORK_TYPE)',
    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态：1-草稿，2-已发布',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    KEY `idx_talent_id` (`talent_id`),
    KEY `idx_publication_time` (`publication_time`),
    KEY `idx_status` (`status`),
    KEY `idx_create_time` (`create_time`),
    CONSTRAINT `fk_pm_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='论文专著信息表';

-- 论文专著关联表
DROP TABLE IF EXISTS `papers_and_monographs_talent`;
CREATE TABLE `papers_and_monographs_talent` (
    `id` varchar(32) NOT NULL COMMENT '业务表ID',
    `talent_id` varchar(32) NOT NULL COMMENT '人才ID',
    `papers_and_monographs_id` varchar(32) NOT NULL COMMENT '论文专著id',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_talent_papers` (`talent_id`,`papers_and_monographs_id`),
    KEY `idx_papers_and_monographs_id` (`papers_and_monographs_id`),
    CONSTRAINT `fk_pmt_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_pmt_papers_and_monographs_id` FOREIGN KEY (`papers_and_monographs_id`) REFERENCES `papers_and_monographs` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='论文专著关联表';

-- 专利信息表
DROP TABLE IF EXISTS `patent`;
CREATE TABLE `patent` (
    `id` varchar(32) NOT NULL COMMENT '专利id',
    `talent_id` varchar(32) NOT NULL COMMENT '人才id',
    `patent_name` varchar(100) NOT NULL COMMENT '专利名称',
    `patent_number` varchar(30) NOT NULL COMMENT '专利编号',
    `application_time` date NOT NULL COMMENT '申请时间',
    `authorization_time` date NOT NULL COMMENT '授权时间',
    `status` varchar(10) NOT NULL DEFAULT '1' COMMENT '状态：1-草稿，2-已发布',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    KEY `idx_talent_id` (`talent_id`),
    KEY `idx_application_time` (`application_time`),
    KEY `idx_status` (`status`),
    KEY `idx_create_time` (`create_time`),
    CONSTRAINT `fk_p_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='专利信息表';

-- 专利信息关联表
DROP TABLE IF EXISTS `patent_talent`;
CREATE TABLE `patent_talent` (
    `id` varchar(32) NOT NULL COMMENT '业务表id',
    `talent_id` varchar(32) NOT NULL COMMENT '人才id',
    `patent_id` varchar(32) NOT NULL COMMENT '专利id',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_talent_patent` (`talent_id`,`patent_id`),
    KEY `idx_patent_id` (`patent_id`),
    CONSTRAINT `fk_pt_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_pt_patent_id` FOREIGN KEY (`patent_id`) REFERENCES `patent` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='专利信息关联表';

-- 立项项目信息表
DROP TABLE IF EXISTS `project_initiation`;
CREATE TABLE `project_initiation` (
    `id` varchar(32) NOT NULL COMMENT '立项项目id',
    `project_proposal_number` varchar(100) NOT NULL COMMENT '立项项目编号',
    `project_name` varchar(100) DEFAULT NULL COMMENT '项目名称',
    `project_from` varchar(100) DEFAULT NULL COMMENT '项目来源',
    `project_type` varchar(100) DEFAULT NULL COMMENT '项目类型',
    `funding_from` varchar(100) DEFAULT NULL COMMENT '资金来源组织',
    `undertaking_unit_id` varchar(32) DEFAULT NULL COMMENT '承担单位id',
    `project_account` decimal(12,2) DEFAULT NULL COMMENT '项目金额',
    `start_time` date DEFAULT NULL COMMENT '项目启动时间',
    `end_time` date DEFAULT NULL COMMENT '项目终止时间',
    `project_status` varchar(20) DEFAULT NULL COMMENT '项目当前状态(PROJECT_STATUS)',
    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态：1-草稿，2-已发布',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    KEY `idx_project_name` (`project_name`),
    KEY `idx_project_status` (`project_status`),
    KEY `idx_status` (`status`),
    KEY `idx_create_time` (`create_time`),
    KEY `idx_undertaking_unit_id` (`undertaking_unit_id`),
    CONSTRAINT `fk_pi_undertaking_unit_id` FOREIGN KEY (`undertaking_unit_id`) REFERENCES `employment_unit` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='立项项目信息表';

-- 人才立项关联表
DROP TABLE IF EXISTS `talent_project_initiation`;
CREATE TABLE `talent_project_initiation` (
    `id` varchar(32) NOT NULL COMMENT '业务表id',
    `talent_id` varchar(32) NOT NULL COMMENT '人才id',
    `project_initiation_id` varchar(32) NOT NULL COMMENT '立项项目id',
    `is_principal` boolean NOT NULL COMMENT '是否负责人（0：否，1：是）',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_talent_project` (`talent_id`,`project_initiation_id`),
    KEY `idx_project_initiation_id` (`project_initiation_id`),
    CONSTRAINT `fk_tpi_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_tpi_project_initiation_id` FOREIGN KEY (`project_initiation_id`) REFERENCES `project_initiation` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='人才立项关联表';

-- 履历信息表
DROP TABLE IF EXISTS `resume`;
CREATE TABLE `resume` (
    `id` varchar(32) NOT NULL COMMENT '履历ID',
    `talent_id` varchar(32) NOT NULL COMMENT '人才ID',
    `start_time` datetime NOT NULL COMMENT '起始时间',
    `end_time` datetime DEFAULT NULL COMMENT '结束时间',
    `unit_id` varchar(32) NOT NULL COMMENT '所在单位id',
    `work_content` text NOT NULL COMMENT '工作内容',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
    `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
    `flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除：0-未删除，1-已删除',
    PRIMARY KEY (`id`),
    KEY `idx_talent_id` (`talent_id`),
    KEY `idx_create_time` (`create_time`),
    CONSTRAINT `fk_r_talent_id` FOREIGN KEY (`talent_id`) REFERENCES `talent_basic` (`id`) ON DELETE CASCADE,
    CONSTRAINT `fk_r_unit_id` FOREIGN KEY (`unit_id`) REFERENCES `employment_unit` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='履历信息表';

ALTER TABLE employment_unit COMMENT = '高校信息表';

RENAME TABLE employment_unit TO school;

ALTER TABLE `talent_basic`
ADD COLUMN `unit_type` varchar(20) DEFAULT NULL COMMENT '单位类型：school-高校，company-企业' AFTER `unit_id`;