yunzer_go/server/database/init_mysql.sql

950 lines
55 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

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

-- 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 '父级字典项ID0表示一级项',
`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 '租户ID0表示平台字典>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 '父级字典ID0表示一级字典',
`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 '租户ID0表示平台操作>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 '父分类ID0表示一级分类',
`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 '父分类ID0表示顶级分类',
`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 '父菜单ID0表示顶级菜单',
`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 '父分类ID0表示顶级分类',
`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 '父部门ID0表示顶级部门',
`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='试题答案表(通用答案存储+多租户隔离+软删除)';