950 lines
55 KiB
SQL
950 lines
55 KiB
SQL
-- MySQL dump 10.13 Distrib 8.0.41, for Win64 (x86_64)
|
||
--
|
||
-- Host: 212.64.112.158 Database: gotest
|
||
-- ------------------------------------------------------
|
||
-- Server version 5.7.44-log
|
||
|
||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||
/*!50503 SET NAMES utf8mb4 */;
|
||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||
|
||
--
|
||
-- Current Database: `gotest`
|
||
--
|
||
|
||
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `gotest` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
|
||
|
||
USE `gotest`;
|
||
|
||
--
|
||
-- Table structure for table `sys_access_log`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `sys_access_log`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `sys_access_log` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||
`tenant_id` int(11) NOT NULL DEFAULT '0',
|
||
`user_id` int(11) NOT NULL DEFAULT '0',
|
||
`username` varchar(255) NOT NULL DEFAULT '',
|
||
`module` varchar(255) NOT NULL DEFAULT '',
|
||
`resource_type` varchar(255) NOT NULL DEFAULT '',
|
||
`resource_id` int(11) DEFAULT NULL,
|
||
`request_url` varchar(255) DEFAULT NULL,
|
||
`query_string` longtext,
|
||
`ip_address` varchar(255) DEFAULT NULL,
|
||
`user_agent` varchar(255) DEFAULT NULL,
|
||
`request_method` varchar(255) DEFAULT NULL,
|
||
`duration` int(11) DEFAULT NULL,
|
||
`create_time` datetime NOT NULL,
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `sys_dict_item`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `sys_dict_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `sys_dict_item` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`dict_type_id` bigint(20) NOT NULL COMMENT '字典类型ID',
|
||
`dict_label` varchar(100) NOT NULL COMMENT '字典标签(显示值,如 正常)',
|
||
`dict_value` varchar(100) NOT NULL COMMENT '字典值(存储值,如 1)',
|
||
`parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父级字典项ID(0表示一级项)',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0-禁用,1-启用)',
|
||
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
|
||
`color` varchar(20) DEFAULT NULL COMMENT '颜色标记(如 #1890ff)',
|
||
`icon` varchar(50) DEFAULT NULL COMMENT '图标(如 el-icon-success)',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0-未删,1-已删)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_dict_type_value` (`dict_type_id`,`dict_value`,`is_deleted`),
|
||
KEY `idx_dict_type_parent_status` (`dict_type_id`,`parent_id`,`status`,`is_deleted`),
|
||
KEY `idx_parent_id` (`parent_id`,`status`,`is_deleted`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8mb4 COMMENT='字典项表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `sys_dict_type`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `sys_dict_type`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `sys_dict_type` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`tenant_id` int(11) NOT NULL DEFAULT '0' COMMENT '租户ID(0表示平台字典,>0表示租户字典)',
|
||
`dict_code` varchar(50) NOT NULL COMMENT '字典编码(唯一,如 USER_STATUS)',
|
||
`dict_name` varchar(100) NOT NULL COMMENT '字典名称(如 用户状态)',
|
||
`parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父级字典ID(0表示一级字典)',
|
||
`is_global` tinyint(4) DEFAULT '0' COMMENT '是否全局0-否 1-是',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0-禁用,1-启用)',
|
||
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0-未删,1-已删)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_dict_code_tenant` (`dict_code`,`is_deleted`),
|
||
KEY `idx_parent_id` (`parent_id`,`is_deleted`),
|
||
KEY `idx_status` (`status`,`is_deleted`),
|
||
KEY `idx_tenant_id` (`tenant_id`,`is_deleted`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `sys_feedback`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `sys_feedback`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `sys_feedback` (
|
||
`id` varchar(36) NOT NULL COMMENT 'ID',
|
||
`tenant_id` varchar(64) NOT NULL COMMENT '租户ID',
|
||
`feedback_name` varchar(50) DEFAULT '' COMMENT '反馈人姓名',
|
||
`module` varchar(30) NOT NULL COMMENT '反馈对应模块',
|
||
`feedback_type` varchar(20) NOT NULL COMMENT '反馈类型',
|
||
`content` text NOT NULL COMMENT '反馈详细内容',
|
||
`attachment_url` varchar(255) DEFAULT '' COMMENT '附件URL',
|
||
`handle_status` varchar(20) NOT NULL DEFAULT '0' COMMENT '处理状态(0-待处理/1-处理中/2-已解决/3-已驳回/4-无需处理)',
|
||
`handle_remark` text COMMENT '处理备注(移除默认值,TEXT类型不支持)',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`) COMMENT '租户ID索引,优化租户级查询',
|
||
KEY `idx_module` (`module`) COMMENT '模块索引,优化模块级反馈统计',
|
||
KEY `idx_handle_status` (`handle_status`) COMMENT '处理状态索引,优化待处理反馈查询',
|
||
KEY `idx_create_time` (`create_time`) COMMENT '创建时间索引,优化时间范围查询'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通用反馈表(支持租户隔离、软删除)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `sys_operation_log`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `sys_operation_log`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `sys_operation_log` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||
`tenant_id` int(11) NOT NULL DEFAULT '0' COMMENT '租户ID(0表示平台操作,>0表示租户操作)',
|
||
`user_id` int(11) NOT NULL COMMENT '操作用户ID',
|
||
`username` varchar(50) NOT NULL COMMENT '操作用户名',
|
||
`module` varchar(100) NOT NULL COMMENT '操作模块(user/tenant/dict/role等)',
|
||
`resource_type` varchar(50) NOT NULL COMMENT '资源类型(如User/Tenant/Dict等)',
|
||
`resource_id` int(11) DEFAULT NULL COMMENT '资源ID(如被操作的用户ID、租户ID等)',
|
||
`operation` varchar(20) NOT NULL COMMENT '操作类型(CREATE/UPDATE/DELETE/LOGIN/LOGOUT/VIEW等)',
|
||
`description` varchar(500) DEFAULT NULL COMMENT '操作描述',
|
||
`old_value` longtext COMMENT '修改前的值(JSON格式,用于UPDATE操作)',
|
||
`new_value` longtext COMMENT '修改后的值(JSON格式,用于UPDATE操作)',
|
||
`ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址',
|
||
`user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理信息',
|
||
`request_method` varchar(10) DEFAULT NULL COMMENT '请求方法(GET/POST/PUT/DELETE等)',
|
||
`request_url` varchar(500) DEFAULT NULL COMMENT '请求URL',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1-成功,0-失败',
|
||
`error_message` text COMMENT '错误信息',
|
||
`duration` int(11) DEFAULT NULL COMMENT '执行时长(毫秒)',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_module` (`module`),
|
||
KEY `idx_resource_type` (`resource_type`),
|
||
KEY `idx_resource_id` (`resource_id`),
|
||
KEY `idx_operation` (`operation`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_tenant_user_time` (`tenant_id`,`user_id`,`create_time`),
|
||
KEY `idx_tenant_module_time` (`tenant_id`,`module`,`create_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8mb4 COMMENT='系统操作日志表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_exam`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_exam`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_exam` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '考试唯一标识',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`category_id` int(11) NOT NULL COMMENT '关联考试分类表ID',
|
||
`exam_name` varchar(100) NOT NULL COMMENT '考试名称',
|
||
`exam_desc` varchar(500) DEFAULT '' COMMENT '考试描述',
|
||
`exam_time` datetime NOT NULL COMMENT '考试开始时间',
|
||
`exam_duration` int(11) NOT NULL COMMENT '考试时长(分钟)',
|
||
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '考试状态(0-未开始,1-进行中,2-已结束,3-已取消)',
|
||
`create_by` int(11) NOT NULL COMMENT '创建人ID',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_category_status` (`tenant_id`,`category_id`,`status`),
|
||
KEY `idx_tenant_create_by` (`tenant_id`,`create_by`),
|
||
KEY `fk_yz_exam_category` (`category_id`),
|
||
CONSTRAINT `fk_yz_exam_category` FOREIGN KEY (`category_id`) REFERENCES `yz_exam_category` (`id`) ON DELETE CASCADE,
|
||
CONSTRAINT `fk_yz_exam_tenant` FOREIGN KEY (`tenant_id`) REFERENCES `yz_tenants` (`id`) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考试主表(关联分类+租户隔离)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_exam_category`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_exam_category`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_exam_category` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类唯一标识',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`category_name` varchar(50) NOT NULL COMMENT '分类名称',
|
||
`parent_id` int(11) DEFAULT '0' COMMENT '父分类ID,0表示一级分类',
|
||
`sort_order` tinyint(4) DEFAULT '0' COMMENT '排序序号',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(1-启用,0-禁用)',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_parent` (`tenant_id`,`parent_id`),
|
||
KEY `idx_tenant_status` (`tenant_id`,`status`),
|
||
KEY `idx_tenant_id` (`tenant_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考试分类表(含多租户隔离)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_exam_question_bank`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_exam_question_bank`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_exam_question_bank` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '题库ID',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`bank_name` varchar(100) NOT NULL COMMENT '题库名称',
|
||
`bank_desc` varchar(500) DEFAULT '' COMMENT '题库描述',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(1-启用,0-禁用)',
|
||
`sort_order` int(11) NOT NULL DEFAULT '0' COMMENT '排序序号',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_status` (`tenant_id`,`status`),
|
||
KEY `idx_tenant_name` (`tenant_id`,`bank_name`),
|
||
KEY `idx_delete_time` (`delete_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考试题库表(支持租户隔离、软删除)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_exam_users`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_exam_users`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_exam_users` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户唯一标识',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`username` varchar(50) NOT NULL COMMENT '用户名',
|
||
`real_name` varchar(50) DEFAULT '' COMMENT '真实姓名',
|
||
`mobile` varchar(20) DEFAULT '' COMMENT '手机号',
|
||
`email` varchar(100) DEFAULT '' COMMENT '邮箱',
|
||
`user_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '用户类型(1-学生,2-教师,3-管理员)',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '账号状态(1-正常,0-禁用,2-冻结)',
|
||
`password` varchar(100) NOT NULL COMMENT '加密后密码(salt+明文密码哈希)',
|
||
`salt` varchar(50) NOT NULL COMMENT '密码盐值',
|
||
`last_login_time` datetime 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 '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tenant_username` (`tenant_id`,`username`),
|
||
UNIQUE KEY `uk_salt` (`salt`) USING BTREE,
|
||
UNIQUE KEY `uk_tenant_mobile` (`tenant_id`,`mobile`) USING BTREE,
|
||
KEY `idx_tenant_username` (`tenant_id`,`username`),
|
||
KEY `idx_tenant_type_status` (`tenant_id`,`user_type`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考试用户表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_files`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_files`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_files` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文件ID',
|
||
`tenant_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID',
|
||
`user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名称',
|
||
`original_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始文件名',
|
||
`file_path` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件存储路径',
|
||
`file_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件访问URL',
|
||
`file_size` bigint(20) NOT NULL DEFAULT '0' COMMENT '文件大小(字节)',
|
||
`file_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件类型',
|
||
`file_ext` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件扩展名',
|
||
`md5` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件MD5值,用于去重',
|
||
`category` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件分类',
|
||
`sub_category` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '子分类',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '状态(1:正常, 0:删除)',
|
||
`is_public` tinyint(4) DEFAULT '0' COMMENT '是否公开(1:是, 0:否)',
|
||
`upload_by` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '上传人',
|
||
`upload_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant` (`tenant_id`),
|
||
KEY `idx_user` (`user_id`),
|
||
KEY `idx_category` (`category`),
|
||
KEY `idx_upload_time` (`upload_time`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_md5` (`md5`),
|
||
KEY `idx_original_name` (`original_name`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_knowledge`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_knowledge`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_knowledge` (
|
||
`knowledge_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '知识ID',
|
||
`tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
|
||
`title` varchar(200) NOT NULL COMMENT '标题',
|
||
`category_id` int(11) DEFAULT NULL COMMENT '分类ID',
|
||
`tags` text COMMENT '标签JSON数组,存储标签名称',
|
||
`author` varchar(50) NOT NULL COMMENT '作者',
|
||
`content` longtext COMMENT '正文内容(富文本)',
|
||
`summary` varchar(500) DEFAULT NULL COMMENT '摘要',
|
||
`cover_url` varchar(500) DEFAULT NULL COMMENT '封面图片URL',
|
||
`status` tinyint(4) DEFAULT '0' COMMENT '状态:0-草稿,1-已发布,2-已归档',
|
||
`share` int(10) DEFAULT '0' COMMENT '是否共享 0-不共享 1-共享',
|
||
`view_count` int(11) DEFAULT '0' COMMENT '查看次数',
|
||
`like_count` int(11) DEFAULT '0' COMMENT '点赞数',
|
||
`is_recommend` tinyint(4) DEFAULT '0' COMMENT '是否推荐:0-否,1-是',
|
||
`is_top` tinyint(4) DEFAULT '0' COMMENT '是否置顶:0-否,1-是',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
|
||
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
|
||
`delete_by` varchar(255) DEFAULT NULL COMMENT '删除人',
|
||
PRIMARY KEY (`knowledge_id`),
|
||
KEY `idx_category_id` (`category_id`),
|
||
KEY `idx_author` (`author`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_view_count` (`view_count`),
|
||
KEY `idx_is_recommend` (`is_recommend`),
|
||
KEY `idx_is_top` (`is_top`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COMMENT='知识库内容表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_knowledge_category`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_knowledge_category`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_knowledge_category` (
|
||
`category_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类ID',
|
||
`tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
|
||
`category_name` varchar(100) NOT NULL COMMENT '分类名称',
|
||
`category_desc` varchar(500) DEFAULT NULL COMMENT '分类描述',
|
||
`parent_id` int(11) DEFAULT '0' COMMENT '父分类ID,0表示顶级分类',
|
||
`sort_order` int(11) DEFAULT '0' COMMENT '排序序号',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`category_id`),
|
||
KEY `idx_parent_id` (`parent_id`),
|
||
KEY `idx_sort_order` (`sort_order`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COMMENT='知识库分类表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_knowledge_favorites`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_knowledge_favorites`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_knowledge_favorites` (
|
||
`favorite_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
|
||
`knowledge_id` int(11) NOT NULL COMMENT '知识ID',
|
||
`user_id` int(11) NOT NULL COMMENT '用户ID',
|
||
`tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`favorite_id`),
|
||
UNIQUE KEY `uk_knowledge_user` (`knowledge_id`,`user_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
CONSTRAINT `yz_fk_fav_knowledge` FOREIGN KEY (`knowledge_id`) REFERENCES `yz_knowledge` (`knowledge_id`) ON DELETE CASCADE,
|
||
CONSTRAINT `yz_fk_fav_user` FOREIGN KEY (`user_id`) REFERENCES `yz_users` (`id`) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库收藏表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_knowledge_tags`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_knowledge_tags`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_knowledge_tags` (
|
||
`tag_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '标签ID',
|
||
`tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
|
||
`tag_name` varchar(50) NOT NULL COMMENT '标签名称',
|
||
`tag_background` varchar(20) DEFAULT NULL COMMENT '标签背景',
|
||
`tag_color` varchar(20) DEFAULT NULL COMMENT '标签颜色',
|
||
`usage_count` int(11) DEFAULT '0' COMMENT '使用次数',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`tag_id`),
|
||
UNIQUE KEY `uk_tag_name` (`tag_name`),
|
||
KEY `idx_usage_count` (`usage_count`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COMMENT='知识库标签表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_menus`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_menus`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_menus` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
|
||
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '菜单名称',
|
||
`path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '菜单路径',
|
||
`parent_id` int(11) DEFAULT '0' COMMENT '父菜单ID,0表示顶级菜单',
|
||
`icon` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '菜单图标',
|
||
`order` int(11) DEFAULT '0' COMMENT '排序序号',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '状态:0-禁用,1-启用',
|
||
`is_show` int(11) DEFAULT NULL COMMENT '是否显示 0-不显示 1-显示',
|
||
`component_path` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '组件路径',
|
||
`is_external` tinyint(4) DEFAULT '0' COMMENT '是否外部链接:0-内部路由,1-外部链接',
|
||
`external_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '外部链接地址',
|
||
`menu_type` tinyint(4) DEFAULT '1' COMMENT '菜单类型:1-页面菜单,2-目录菜单,3-权限按钮',
|
||
`permission` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '权限标识',
|
||
`description` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '菜单描述',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
`create_by` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||
`update_by` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_parent_id` (`parent_id`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_order` (`order`),
|
||
KEY `idx_menu_type` (`menu_type`),
|
||
KEY `idx_delete_time` (`delete_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=136 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表(增强版)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_program_category`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_program_category`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_program_category` (
|
||
`category_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类ID',
|
||
`category_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称',
|
||
`category_desc` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分类描述',
|
||
`parent_id` int(11) DEFAULT '0' COMMENT '父分类ID,0表示顶级分类',
|
||
`sort_order` int(11) DEFAULT '0' COMMENT '排序序号,用于展示顺序',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`category_id`),
|
||
KEY `idx_parent_id` (`parent_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='程序分类表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_program_info`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_program_info`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_program_info` (
|
||
`program_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '程序ID',
|
||
`category_id` int(11) NOT NULL COMMENT '所属分类ID',
|
||
`program_name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '程序名称',
|
||
`program_desc` text COLLATE utf8mb4_unicode_ci COMMENT '程序描述',
|
||
`jump_url` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '跳转地址',
|
||
`icon_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '程序图标地址',
|
||
`version` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '程序版本',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '状态:0-禁用,1-启用',
|
||
`sort_order` int(11) DEFAULT '0' COMMENT '排序序号,用于展示顺序',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`program_id`),
|
||
KEY `idx_category_id` (`category_id`),
|
||
KEY `idx_status` (`status`),
|
||
CONSTRAINT `yz_fk_program_category` FOREIGN KEY (`category_id`) REFERENCES `yz_program_category` (`category_id`) ON DELETE CASCADE
|
||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='程序信息表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_roles`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_roles`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_roles` (
|
||
`role_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID 0-全局角色 其他-各租户自设角色',
|
||
`role_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色代码',
|
||
`role_name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名称',
|
||
`description` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '角色描述',
|
||
`menu_ids` json DEFAULT NULL COMMENT '菜单权限ID数组,JSON格式存储',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '角色状态:0-禁用,1-启用',
|
||
`sort_order` int(11) DEFAULT '0' COMMENT '排序序号',
|
||
`default` tinyint(4) NOT NULL DEFAULT '0' COMMENT '角色显示范围:0-全局展示,1-平台用户展示(yz_users),2-租户用户展示(yz_tenant_employees)',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
`create_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||
`update_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||
PRIMARY KEY (`role_id`),
|
||
UNIQUE KEY `uk_role_code` (`role_code`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_sort_order` (`sort_order`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_delete_time` (`delete_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_crm_contact`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_crm_contact`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_crm_contact` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键ID',
|
||
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID(关联租户表,隔离数据)',
|
||
`related_type` tinyint(4) NOT NULL COMMENT '关联类型:1=客户,2=供应商(区分联系人归属)',
|
||
`related_id` bigint(20) NOT NULL COMMENT '关联ID(关联yz_tenant_crm_customer.id或yz_tenant_crm_supplier.id)',
|
||
`contact_name` varchar(50) NOT NULL COMMENT '联系人姓名',
|
||
`gender` tinyint(4) DEFAULT '0' COMMENT '性别:0=未知,1=男,2=女',
|
||
`mobile` varchar(20) DEFAULT NULL COMMENT '手机号(唯一索引,避免重复)',
|
||
`phone` varchar(20) DEFAULT NULL COMMENT '固定电话',
|
||
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
|
||
`position` varchar(50) DEFAULT NULL COMMENT '职位(如:项目经理、采购负责人)',
|
||
`department` varchar(50) DEFAULT NULL COMMENT '所属部门',
|
||
`is_primary` tinyint(4) DEFAULT '0' COMMENT '是否主联系人:0=否,1=是(一个客户/供应商可设一个主联系人)',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注(如:关键决策人、对接优先级等)',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`create_by` bigint(20) DEFAULT NULL COMMENT '创建人ID(关联用户表)',
|
||
`update_by` bigint(20) DEFAULT NULL COMMENT '更新人ID(关联用户表)',
|
||
`is_deleted` tinyint(4) DEFAULT '0' COMMENT '逻辑删除:0=正常,1=删除',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tenant_mobile` (`tenant_id`,`mobile`) COMMENT '同一租户内手机号唯一',
|
||
KEY `idx_tenant_related` (`tenant_id`,`related_type`,`related_id`) COMMENT '查询租户下某客户/供应商的所有联系人',
|
||
KEY `idx_contact_name` (`tenant_id`,`contact_name`) COMMENT '按姓名模糊查询联系人'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户CRM联系人表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_crm_customer`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_crm_customer`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_crm_customer` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键ID',
|
||
`tenant_id` varchar(64) NOT NULL COMMENT '租户ID',
|
||
`customer_name` varchar(100) NOT NULL COMMENT '客户名称(企业/个人名称)',
|
||
`customer_type` varchar(20) NOT NULL COMMENT '客户类型(1-企业/2-政府机构/3-国企/4-个人)',
|
||
`contact_person` varchar(50) NOT NULL COMMENT '联系人姓名',
|
||
`contact_phone` varchar(20) NOT NULL COMMENT '联系人电话',
|
||
`contact_email` varchar(100) DEFAULT '' COMMENT '联系人邮箱',
|
||
`customer_level` varchar(20) DEFAULT '3' COMMENT '客户等级(1-核心客户/2-重要客户/3-普通客户/4-潜在客户)',
|
||
`industry` varchar(50) DEFAULT '' COMMENT '所属行业(如:互联网、金融、制造业、教育等)',
|
||
`address` varchar(255) DEFAULT '' COMMENT '客户地址(详细地址)',
|
||
`register_time` date DEFAULT NULL COMMENT '客户注册/合作起始日期',
|
||
`expire_time` date DEFAULT NULL COMMENT '合作到期日期(无到期则为空)',
|
||
`status` varchar(20) NOT NULL DEFAULT '1' COMMENT '客户状态(0-禁用/1-正常/2-冻结/3-已注销)',
|
||
`remark` text COMMENT '客户备注',
|
||
`invoice_title` varchar(100) DEFAULT '' COMMENT '发票抬头',
|
||
`tax_number` varchar(50) DEFAULT '' COMMENT '纳税人识别号',
|
||
`bank_name` varchar(100) DEFAULT '' COMMENT '开户行名称',
|
||
`bank_account` varchar(50) DEFAULT '' COMMENT '开户行账号',
|
||
`registered_address` varchar(255) DEFAULT '' COMMENT '注册地址',
|
||
`registered_phone` varchar(50) DEFAULT '' COMMENT '注册电话',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`) COMMENT '租户ID索引,优化多租户隔离查询',
|
||
KEY `idx_customer_name` (`customer_name`) COMMENT '客户名称索引,优化按名称模糊查询',
|
||
KEY `idx_contact_phone` (`contact_phone`) COMMENT '联系人电话索引,优化按电话精准查询',
|
||
KEY `idx_status` (`status`) COMMENT '客户状态索引,优化按状态筛选(如:查询正常客户)',
|
||
KEY `idx_register_time` (`register_time`) COMMENT '注册时间索引,优化按合作时间范围查询'
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COMMENT='客户管理表(支持租户隔离、软删除、客户全生命周期追踪)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_crm_supplier`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_crm_supplier`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_crm_supplier` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键ID',
|
||
`tenant_id` varchar(64) NOT NULL COMMENT '租户ID',
|
||
`supplier_name` varchar(100) NOT NULL COMMENT '供应商名称(企业/个人名称)',
|
||
`supplier_type` varchar(20) NOT NULL COMMENT '供应商类型',
|
||
`contact_person` varchar(50) NOT NULL COMMENT '联系人姓名',
|
||
`contact_phone` varchar(20) NOT NULL COMMENT '联系人电话',
|
||
`contact_email` varchar(100) DEFAULT '' COMMENT '联系人邮箱',
|
||
`supplier_level` varchar(20) DEFAULT '3' COMMENT '供应商等级(1-核心供应商/2-重要供应商/3-普通供应商/4-潜在供应商)',
|
||
`industry` varchar(50) DEFAULT '' COMMENT '所属行业',
|
||
`address` varchar(255) DEFAULT '' COMMENT '供应商地址',
|
||
`register_time` date DEFAULT NULL COMMENT '供应商注册/合作起始日期',
|
||
`expire_time` date DEFAULT NULL COMMENT '合作到期日期',
|
||
`status` varchar(20) NOT NULL DEFAULT '1' COMMENT '供应商状态(0-禁用/1-正常/2-冻结/3-已注销)',
|
||
`remark` text COMMENT '供应商备注',
|
||
`invoice_title` varchar(100) DEFAULT '' COMMENT '发票抬头',
|
||
`tax_number` varchar(50) DEFAULT '' COMMENT '纳税人识别号',
|
||
`bank_name` varchar(100) DEFAULT '' COMMENT '开户行名称',
|
||
`bank_account` varchar(50) DEFAULT '' COMMENT '开户行账号',
|
||
`registered_address` varchar(255) DEFAULT '' COMMENT '注册地址',
|
||
`registered_phone` varchar(50) DEFAULT '' COMMENT '注册电话',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`) COMMENT '租户ID索引,优化多租户隔离查询',
|
||
KEY `idx_supplier_name` (`supplier_name`) COMMENT '供应商名称索引,优化按名称模糊查询',
|
||
KEY `idx_contact_phone` (`contact_phone`) COMMENT '联系人电话索引,优化按电话精准查询',
|
||
KEY `idx_status` (`status`) COMMENT '供应商状态索引,优化按状态筛选',
|
||
KEY `idx_register_time` (`register_time`) COMMENT '注册时间索引,优化按合作时间范围查询'
|
||
) ENGINE=InnoDB AUTO_INCREMENT=501 DEFAULT CHARSET=utf8mb4 COMMENT='供应商管理表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_departments`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_departments`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_departments` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门ID',
|
||
`tenant_id` int(11) NOT NULL DEFAULT '0' COMMENT '租户ID',
|
||
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '部门名称',
|
||
`code` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '部门编码',
|
||
`parent_id` int(11) DEFAULT '0' COMMENT '父部门ID,0表示顶级部门',
|
||
`description` text COLLATE utf8mb4_unicode_ci COMMENT '部门描述',
|
||
`manager_id` int(11) DEFAULT NULL COMMENT '部门经理ID',
|
||
`sort_order` int(11) DEFAULT '0' COMMENT '排序序号',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '状态:1-启用,0-禁用',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_code` (`code`),
|
||
KEY `idx_parent_id` (`parent_id`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_sort_order` (`sort_order`),
|
||
KEY `idx_delete_time` (`delete_time`),
|
||
KEY `idx_tenant_delete` (`tenant_id`,`delete_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_employees`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_employees`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_employees` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '员工ID',
|
||
`tenant_id` int(11) NOT NULL DEFAULT '0' COMMENT '租户ID',
|
||
`employee_no` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '工号',
|
||
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名',
|
||
`phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号',
|
||
`email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱',
|
||
`department_id` int(11) DEFAULT NULL COMMENT '部门ID',
|
||
`position_id` int(11) DEFAULT NULL COMMENT '职位ID',
|
||
`role` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户角色',
|
||
`bank_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '工资卡开户行',
|
||
`bank_account` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '工资卡卡号',
|
||
`password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '登录密码(加密后)',
|
||
`salt` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码盐值',
|
||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||
`last_login_ip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后登录IP',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '状态:1-在职,0-离职',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_employee_no` (`employee_no`),
|
||
KEY `idx_name` (`name`),
|
||
KEY `idx_department_id` (`department_id`),
|
||
KEY `idx_position_id` (`position_id`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_create_time` (`create_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_positions`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_positions`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_positions` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '职位ID',
|
||
`tenant_id` int(11) NOT NULL DEFAULT '0' COMMENT '租户ID',
|
||
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '职位名称',
|
||
`code` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '职位编码',
|
||
`department_id` int(11) DEFAULT NULL COMMENT '所属部门ID',
|
||
`level` int(11) DEFAULT '0' COMMENT '职位级别',
|
||
`description` text COLLATE utf8mb4_unicode_ci COMMENT '职位描述',
|
||
`sort_order` int(11) DEFAULT '0' COMMENT '排序序号',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '状态:1-启用,0-禁用',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_code` (`code`),
|
||
KEY `idx_department_id` (`department_id`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_sort_order` (`sort_order`),
|
||
KEY `idx_delete_time` (`delete_time`),
|
||
KEY `idx_dept_delete_status` (`department_id`,`delete_time`,`status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='职位表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenant_tasks`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenant_tasks`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenant_tasks` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID(主键)',
|
||
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID(多租户隔离,如无多租户需求可设为默认1)',
|
||
`task_no` varchar(64) NOT NULL COMMENT '任务编号(唯一标识,如TASK20251112001)',
|
||
`task_name` varchar(255) NOT NULL COMMENT '任务名称',
|
||
`task_desc` text COMMENT '任务描述(富文本内容,支持图片/表格)',
|
||
`task_type` varchar(32) DEFAULT 'common' COMMENT '任务类型(common=普通任务,project=项目任务,repeat=重复任务,可自定义)',
|
||
`business_tag` varchar(64) DEFAULT NULL COMMENT '业务标签(多个标签用逗号分隔,如"紧急,日常协作")',
|
||
`parent_task_id` bigint(20) DEFAULT NULL COMMENT '父任务ID(子任务关联用,无父任务则为NULL)',
|
||
`project_id` bigint(20) DEFAULT NULL COMMENT '关联项目ID(关联OA项目模块)',
|
||
`related_id` bigint(20) DEFAULT NULL COMMENT '关联其他模块ID(如审批单ID、客户ID)',
|
||
`related_type` varchar(32) DEFAULT NULL COMMENT '关联模块类型(approval=审批单,customer=客户,为空则无关联)',
|
||
`team_employee_ids` varchar(500) DEFAULT NULL COMMENT '团队成员',
|
||
`creator_id` bigint(20) NOT NULL COMMENT '创建人ID',
|
||
`creator_name` varchar(64) NOT NULL COMMENT '创建人姓名',
|
||
`principal_id` bigint(20) NOT NULL COMMENT '负责人ID',
|
||
`principal_name` varchar(64) NOT NULL COMMENT '负责人姓名',
|
||
`participant_ids` varchar(512) DEFAULT NULL COMMENT '参与人ID(多个用逗号分隔)',
|
||
`participant_names` varchar(512) DEFAULT NULL COMMENT '参与人姓名(多个用逗号分隔)',
|
||
`cc_ids` varchar(512) DEFAULT NULL COMMENT '抄送人ID(多个用逗号分隔)',
|
||
`cc_names` varchar(512) DEFAULT NULL COMMENT '抄送人姓名(多个用逗号分隔)',
|
||
`plan_start_time` datetime DEFAULT NULL COMMENT '计划开始时间',
|
||
`plan_end_time` datetime NOT NULL COMMENT '计划截止时间',
|
||
`actual_start_time` datetime DEFAULT NULL COMMENT '实际开始时间',
|
||
`actual_end_time` datetime DEFAULT NULL COMMENT '实际结束时间',
|
||
`estimated_hours` decimal(10,2) DEFAULT NULL COMMENT '预估工时(小时)',
|
||
`actual_hours` decimal(10,2) DEFAULT NULL COMMENT '实际工时(小时)',
|
||
`task_status` varchar(32) NOT NULL DEFAULT 'not_started' COMMENT '任务状态(0-未开始,1-进行中,2-暂停,3-已完成,4-已关闭)',
|
||
`priority` varchar(16) NOT NULL DEFAULT 'medium' COMMENT '优先级(0-高,1-中,2-低,3-紧急)',
|
||
`progress` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务进度(0-100,子任务存在时自动计算)',
|
||
`need_approval` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否需要完成审批(0=否,1=是)',
|
||
`approval_id` bigint(20) DEFAULT NULL COMMENT '关联审批单ID(完成审批时填写)',
|
||
`delay_approved` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否已延期审批(0=否,1=是)',
|
||
`old_plan_end_time` datetime DEFAULT NULL COMMENT '原计划截止时间(延期时记录)',
|
||
`repeat_type` varchar(16) DEFAULT NULL COMMENT '重复类型(daily=按日,weekly=按周,monthly=按月,为空则非重复任务)',
|
||
`repeat_cycle` int(11) DEFAULT NULL COMMENT '重复周期(如每周重复则为7,每月重复则为30)',
|
||
`repeat_end_time` datetime DEFAULT NULL COMMENT '重复截止时间(重复任务终止时间)',
|
||
`attachment_ids` varchar(1024) DEFAULT NULL COMMENT '附件ID(关联文件表,多个用逗号分隔)',
|
||
`remark` varchar(512) DEFAULT NULL COMMENT '备注(额外说明)',
|
||
`is_archived` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否归档(0=未归档,1=已归档)',
|
||
`archive_time` datetime DEFAULT NULL COMMENT '归档时间',
|
||
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
`operator_id` bigint(20) DEFAULT NULL COMMENT '最后操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '最后操作人姓名',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tenant_task_no` (`tenant_id`,`task_no`) COMMENT '租户+任务编号唯一索引',
|
||
KEY `idx_tenant_principal` (`tenant_id`,`principal_id`) COMMENT '租户+负责人索引(查询个人任务)',
|
||
KEY `idx_tenant_status` (`tenant_id`,`task_status`) COMMENT '租户+状态索引(筛选任务状态)',
|
||
KEY `idx_tenant_project` (`tenant_id`,`project_id`) COMMENT '租户+项目索引(查询项目下任务)',
|
||
KEY `idx_tenant_plan_end_time` (`tenant_id`,`plan_end_time`) COMMENT '租户+截止时间索引(逾期提醒、日历视图)',
|
||
KEY `idx_parent_task_id` (`parent_task_id`) COMMENT '父任务ID索引(查询子任务)'
|
||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='OA系统任务表(多租户适配)';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_tenants`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_tenants`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_tenants` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '租户ID',
|
||
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户名称',
|
||
`code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户编码(唯一)',
|
||
`owner` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '负责人',
|
||
`phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系电话',
|
||
`email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱地址',
|
||
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '状态:1-启用,0-禁用',
|
||
`audit_status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'pending' COMMENT '审核状态:pending-待审核,approved-已通过,rejected-已拒绝',
|
||
`audit_comment` text COLLATE utf8mb4_unicode_ci COMMENT '审核意见',
|
||
`audit_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人',
|
||
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
||
`capacity` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '0' COMMENT '分配空间容量(MB)',
|
||
`capacity_used` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '0' COMMENT '已用空间容量(MB)',
|
||
`attachment_url` longtext COLLATE utf8mb4_unicode_ci COMMENT '附件',
|
||
`remark` text COLLATE utf8mb4_unicode_ci COMMENT '备注',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
`create_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||
`update_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_code` (`code`),
|
||
KEY `idx_name` (`name`),
|
||
KEY `idx_owner` (`owner`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_audit_status` (`audit_status`),
|
||
KEY `idx_create_time` (`create_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
--
|
||
-- Table structure for table `yz_users`
|
||
--
|
||
|
||
DROP TABLE IF EXISTS `yz_users`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `yz_users` (
|
||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||
`tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
|
||
`username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
|
||
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '加密后的密码',
|
||
`salt` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码盐值',
|
||
`email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱地址',
|
||
`avatar` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像URL',
|
||
`nickname` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '昵称',
|
||
`role` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'user' COMMENT '用户角色',
|
||
`department_id` int(11) DEFAULT NULL COMMENT '部门ID',
|
||
`position_id` int(11) DEFAULT NULL COMMENT '职位ID',
|
||
`status` tinyint(4) DEFAULT '1' COMMENT '用户状态:0-禁用,1-启用',
|
||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||
`last_login_ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后登录IP',
|
||
`login_count` int(11) DEFAULT '0' COMMENT '登录次数',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
|
||
`create_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||
`update_by` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_username` (`username`),
|
||
KEY `idx_email` (`email`),
|
||
KEY `idx_role` (`role`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_create_time` (`create_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||
|
||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||
|
||
CREATE TABLE `yz_exam_question` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '试题唯一标识',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`question_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '题型(1-单选,2-多选,3-判断,4-填空,5-简答)',
|
||
`question_title` varchar(1000) NOT NULL COMMENT '题干内容',
|
||
`question_analysis` varchar(2000) DEFAULT '' COMMENT '试题解析',
|
||
`score` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '试题分值',
|
||
`sort_order` tinyint(4) DEFAULT 0 COMMENT '排序序号',
|
||
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态(1-启用,0-禁用)',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
-- 核心联合索引:租户+状态+删除时间(查询可用试题)
|
||
KEY `idx_tenant_status_delete` (`tenant_id`, `status`, `delete_time`),
|
||
-- 联合索引:租户+题型+删除时间(筛选特定题型试题)
|
||
KEY `idx_tenant_type_delete` (`tenant_id`, `question_type`, `delete_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='试题主表(通用型+多租户隔离+软删除)';
|
||
|
||
CREATE TABLE `yz_exam_question_option` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '选项唯一标识',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`question_id` bigint(20) NOT NULL COMMENT '关联试题主表ID',
|
||
`option_label` varchar(10) NOT NULL COMMENT '选项标签(A/B/C/D/对/错)',
|
||
`option_content` varchar(500) NOT NULL COMMENT '选项内容',
|
||
`sort_order` tinyint(4) DEFAULT 0 COMMENT '排序序号',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
-- 核心联合索引:租户+试题ID+删除时间(查询某试题所有选项)
|
||
KEY `idx_tenant_question_delete` (`tenant_id`, `question_id`, `delete_time`),
|
||
-- 联合索引:租户+试题ID+选项标签+删除时间(快速定位选项)
|
||
KEY `idx_tenant_question_label_delete` (`tenant_id`, `question_id`, `option_label`, `delete_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='试题选项表(客观题专用+多租户隔离+软删除)';
|
||
|
||
CREATE TABLE `yz_exam_question_answer` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '答案唯一标识',
|
||
`tenant_id` int(11) NOT NULL COMMENT '租户ID(多租户隔离)',
|
||
`question_id` bigint(20) NOT NULL COMMENT '关联试题主表ID',
|
||
`answer_content` varchar(1000) 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 '更新时间',
|
||
`delete_time` datetime DEFAULT NULL COMMENT '删除时间(软删除)',
|
||
PRIMARY KEY (`id`),
|
||
-- 核心联合索引:租户+试题ID+删除时间(查询某试题正确答案)
|
||
KEY `idx_tenant_question_delete` (`tenant_id`, `question_id`, `delete_time`),
|
||
-- 唯一索引:同一租户下同一试题只能有一个正确答案
|
||
UNIQUE KEY `uk_tenant_question` (`tenant_id`, `question_id`, `delete_time`) COMMENT '软删除状态下试题答案唯一'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='试题答案表(通用答案存储+多租户隔离+软删除)'; |