worklog/sql/init_database.sql
zhangjf ed997e91c8 feature: 功能优化,请同时调整管理后台和移动端
1、工作日志增加类型, 类型: 1 工作计划  2 工作日志  3 个人日志  9 其他;
         2、日历上有日志记录的日期,原来点击日期是显示当天的工作日志,现在调整为 日志列表,点击后,在弹窗内显示日志详情,同时增加返回列表的功能。
         3、同一天,针对(工作计划和工作日志)类型的日志,只允许创建一个
         4、管理后台调整: 在首页,点击“添加日志”,要在首页弹出“添加日志”,而不是在“工作日志”的页面弹出弹窗
         5、管理后台调整: 在“添加日志“和”编辑日志“的内容时,能够同步以markdown方式展示编辑的内容
2026-02-26 18:25:07 +08:00

210 lines
9.9 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.

-- ====================================================
-- 工作日志服务平台 - 数据库初始化脚本
-- ====================================================
-- 版本V1.0
-- 创建日期2026-02-24
-- 说明:本脚本用于创建工作日志平台所需的数据库表结构
-- ====================================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ====================================================
-- 1. 创建数据库(如果不存在)
-- ====================================================
CREATE DATABASE IF NOT EXISTS `worklog`
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_general_ci;
USE `worklog`;
-- ====================================================
-- 2. 创建数据库用户(如果需要)
-- ====================================================
-- 注意:需要以 root 用户或具有用户管理权限的用户执行以下语句
-- 创建数据库用户
-- CREATE USER IF NOT EXISTS 'worklog'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Wlog@123';
-- CREATE USER IF NOT EXISTS 'worklog'@'%' IDENTIFIED WITH caching_sha2_password BY 'Wlog@123';
-- 授予权限
-- GRANT ALL PRIVILEGES ON worklog.* TO 'worklog'@'localhost';
-- GRANT ALL PRIVILEGES ON worklog.* TO 'worklog'@'%';
-- 刷新权限
-- FLUSH PRIVILEGES;
-- ====================================================
-- 3. 系统用户表 (sys_user)
-- ====================================================
-- 功能:存储系统用户基础信息,包括登录凭证、个人信息、角色权限等
-- 主键策略VARCHAR(20) 存储雪花算法生成的19位数字ID
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` VARCHAR(20) NOT NULL COMMENT '用户ID雪花算法生成',
`username` VARCHAR(50) NOT NULL COMMENT '登录账号',
`password` VARCHAR(100) NOT NULL COMMENT '登录密码BCrypt加密',
`name` VARCHAR(50) NOT NULL COMMENT '姓名',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '联系方式',
`email` VARCHAR(100) DEFAULT NULL COMMENT '电子邮箱',
`position` VARCHAR(50) DEFAULT NULL COMMENT '职位',
`description` VARCHAR(500) DEFAULT NULL COMMENT '描述',
`status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态0-禁用1-启用)',
`role` VARCHAR(20) NOT NULL DEFAULT 'USER' COMMENT '角色USER-普通用户ADMIN-管理员)',
`created_by` VARCHAR(20) NOT NULL COMMENT '创建人ID',
`created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(20) NOT NULL COMMENT '更新人ID',
`updated_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除0-未删除1-已删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_status` (`status`),
KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统用户表';
-- ====================================================
-- 4. 日志模板表 (log_template)
-- ====================================================
-- 功能:存储工作日志模板,提供标准化的日志格式
DROP TABLE IF EXISTS `log_template`;
CREATE TABLE `log_template` (
`id` VARCHAR(20) NOT NULL COMMENT '模板ID雪花算法生成',
`template_name` VARCHAR(100) NOT NULL COMMENT '模板名称',
`template_content` TEXT NOT NULL COMMENT '模板内容Markdown格式',
`instruction` VARCHAR(500) DEFAULT NULL COMMENT '使用说明',
`status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态0-禁用1-启用)',
`created_by` VARCHAR(20) NOT NULL COMMENT '创建人ID',
`created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(20) NOT NULL COMMENT '更新人ID',
`updated_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除0-未删除1-已删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_template_name` (`template_name`),
KEY `idx_status` (`status`),
KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='日志模板表';
-- ====================================================
-- 5. 工作日志表 (work_log)
-- ====================================================
-- 功能:存储员工每日工作日志记录
DROP TABLE IF EXISTS `work_log`;
CREATE TABLE `work_log` (
`id` VARCHAR(20) NOT NULL COMMENT '日志ID雪花算法生成',
`user_id` VARCHAR(20) NOT NULL COMMENT '记录人ID',
`log_date` DATE NOT NULL COMMENT '日志日期',
`title` VARCHAR(200) DEFAULT NULL COMMENT '日志标题',
`log_type` TINYINT(1) NOT NULL DEFAULT 2 COMMENT '日志类型1-工作计划2-工作日志3-个人日志9-其他)',
`record_time` DATETIME NOT NULL COMMENT '记录时间',
`content` TEXT NOT NULL COMMENT '日志内容Markdown格式最大2000汉字',
`template_id` VARCHAR(20) DEFAULT NULL COMMENT '使用模板ID',
`created_by` VARCHAR(20) NOT NULL COMMENT '创建人ID',
`created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(20) NOT NULL COMMENT '更新人ID',
`updated_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除0-未删除1-已删除)',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_log_date` (`log_date`),
KEY `idx_deleted` (`deleted`),
KEY `idx_user_date` (`user_id`, `log_date`),
KEY `idx_user_date_type` (`user_id`, `log_date`, `log_type`),
CONSTRAINT `fk_work_log_user` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`),
CONSTRAINT `fk_work_log_template` FOREIGN KEY (`template_id`) REFERENCES `log_template` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工作日志表';
-- ====================================================
-- 6. 初始化数据
-- ====================================================
-- 6.1 创建默认管理员账号
-- 密码admin123BCrypt加密后的值实际使用时需要通过程序生成
-- 注意:以下密码哈希值仅为示例,实际部署时应通过程序生成
INSERT INTO `sys_user` (
`id`, `username`, `password`, `name`, `phone`, `email`,
`position`, `description`, `status`, `role`,
`created_by`, `updated_by`
) VALUES (
'1000000000000000001',
'admin',
'$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5EH',
'系统管理员',
NULL,
'admin@example.com',
'系统管理员',
'系统默认管理员账号',
1,
'ADMIN',
'1000000000000000001',
'1000000000000000001'
);
-- 6.2 创建默认日志模板
INSERT INTO `log_template` (
`id`, `template_name`, `template_content`, `instruction`,
`status`, `created_by`, `updated_by`
) VALUES
(
'2000000000000000001',
'每日工作日志',
'## 今日工作内容\n\n### 1. 已完成工作\n- \n\n### 2. 进行中工作\n- \n\n### 3. 遇到的问题\n- \n\n### 4. 明日计划\n- ',
'适用于记录每日工作内容、进度和计划',
1,
'1000000000000000001',
'1000000000000000001'
),
(
'2000000000000000002',
'研发日报',
'## 研发日报\n\n### 开发任务\n- **任务名称**\n- **完成进度**\n- **技术方案**\n\n### 代码提交\n- **提交次数**\n- **主要功能**\n\n### Bug修复\n- **问题描述**\n- **解决方案**\n\n### 技术难点\n- \n\n### 明日计划\n- ',
'适用于研发人员记录每日开发工作',
1,
'1000000000000000001',
'1000000000000000001'
),
(
'2000000000000000003',
'周报模板',
'## 本周工作总结\n\n### 本周完成工作\n1. \n\n### 工作亮点\n- \n\n### 存在问题\n- \n\n### 下周工作计划\n1. \n\n### 需要协调的资源\n- ',
'适用于周度工作总结和计划',
1,
'1000000000000000001',
'1000000000000000001'
);
-- ====================================================
-- 7. 数据库说明
-- ====================================================
--
-- 数据库配置:
-- - 数据库名worklog
-- - 数据库用户worklog
-- - 数据库密码Wlog@123
-- - 字符集utf8mb4
-- - 排序规则utf8mb4_general_ci
--
-- 设计原则:
-- 1. 主键策略:所有表主键使用 VARCHAR(20) 存储雪花算法生成的19位数字ID
-- 2. 审计字段:统一包含 created_by、created_time、updated_by、updated_time、deleted
-- 3. 逻辑删除:使用 deleted 字段实现软删除,保留历史数据
-- 4. 索引设计:为常用查询字段建立索引,提升查询性能
-- 5. 字符集:统一使用 utf8mb4支持 emoji 等特殊字符
-- 6. 唯一性约束username 和 template_name 建立唯一索引
--
-- 外键关系:
-- - work_log.user_id -> sys_user.id
-- - work_log.template_id -> log_template.id
--
-- 注意事项:
-- 1. 默认管理员密码需要在实际部署时通过程序使用 BCrypt 算法重新生成
-- 2. 雪花算法ID需要在应用层实现数据库仅存储
-- 3. 日志内容限制为2000汉字需在应用层进行校验
--
SET FOREIGN_KEY_CHECKS = 1;
-- ====================================================
-- 脚本执行完成
-- ====================================================