数据库架构
This commit is contained in:
parent
99fa0edcbf
commit
5a000412b7
|
@ -92,7 +92,92 @@ public interface GeneralMapper {
|
|||
|
||||
## organize_oa 数据库设计
|
||||
|
||||
![image-20240113005049859](./assets/image-20240113005049859.png)
|
||||
> 以下是关于此数据库目前结构样式图,其中箭头为外键约束。对于外键约束内容详细会在下面进行详细叙述。
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
direction BT
|
||||
class node7 {
|
||||
varchar(50) value /* 调用关键字 */
|
||||
json data /* json数据 */
|
||||
timestamp created_at /* 创建时间 */
|
||||
timestamp updated_at /* 修改时间 */
|
||||
bigint unsigned id /* 主键 */
|
||||
}
|
||||
class node0 {
|
||||
bigint unsigned pid /* 权限父id */
|
||||
varchar(100) name /* 权限名称 */
|
||||
varchar(50) code /* 权限编码 */
|
||||
tinyint(1) type /* 0为菜单,1为权限 */
|
||||
deleted_at /* 删除时间(没有删除应当为空) */ timestamp
|
||||
bigint unsigned id /* 主键 */
|
||||
}
|
||||
class node5 {
|
||||
varchar(255) name /* 项目名称 */
|
||||
varchar(255) description /* 一句话描述 */
|
||||
text introduction /* 项目详细介绍 */
|
||||
tinyint(1) code_open /* 代码是否开放 */
|
||||
text core_code /* 核心代码内容(Markdown) */
|
||||
json git /* git代码仓库内容 */
|
||||
tinyint unsigned difficulty_level /* 难度等级 */
|
||||
int unsigned type /* 类型 */
|
||||
double reward /* 报酬 */
|
||||
tinyint unsigned status /* 状态 */
|
||||
bigint unsigned id /* 项目id */
|
||||
}
|
||||
class node2 {
|
||||
varchar(50) name /* 类型名字 */
|
||||
timestamp created_at /* 创建时间 */
|
||||
timestamp updated_at /* 修改时间 */
|
||||
int unsigned id /* 项目类型id */
|
||||
}
|
||||
class node3 {
|
||||
varchar(20) role_name /* 角色名称 */
|
||||
timestamp created_at /* 创建时间 */
|
||||
timestamp updated_at /* 修改时间 */
|
||||
int unsigned id /* 角色id */
|
||||
}
|
||||
class node1 {
|
||||
bigint unsigned pid /* 权限id */
|
||||
timestamp created_at /* 创建时间 */
|
||||
int unsigned rid /* 角色id */
|
||||
}
|
||||
class node6 {
|
||||
int unsigned rid /* 角色id */
|
||||
timestamp createdt_at /* 创建时间 */
|
||||
timestamp updated_at /* 修改时间 */
|
||||
bigint unsigned uid /* 用户id */
|
||||
}
|
||||
class node4 {
|
||||
char(10) job_id /* 工作ID */
|
||||
varchar(40) username /* 用户名 */
|
||||
varchar(255) password /* 密码 */
|
||||
varchar(255) address /* 用户家庭地址 */
|
||||
varchar(11) phone /* 电话 */
|
||||
varchar(100) email /* 邮箱 */
|
||||
tinyint unsigned age /* 年龄 */
|
||||
varchar(50) signature /* 一句话描述自己 */
|
||||
tinyint unsigned sex /* 0/1/2:保密/男/女 */
|
||||
text avatar /* 头像地址 */
|
||||
varchar(20) nickname /* 昵称 */
|
||||
tinyint(1) enabled /* 账户是否可用 */
|
||||
tinyint(1) account_no_expired /* 账户是否过期 */
|
||||
tinyint(1) credentials_no_expired /* 密码是否过期 */
|
||||
tinyint(1) recommend /* 账户是否被推荐 */
|
||||
tinyint(1) account_no_locked /* 账户是否被锁定 */
|
||||
text description /* 个人简介 */
|
||||
timestamp created_at /* 创建时间 */
|
||||
timestamp updated_at /* 更新时间 */
|
||||
bigint unsigned id /* 主键 */
|
||||
}
|
||||
|
||||
node0 --|> node0
|
||||
node5 --|> node2
|
||||
node1 --|> node0
|
||||
node1 --|> node3
|
||||
node6 --|> node3
|
||||
node6 --|> node4
|
||||
```
|
||||
|
||||
### oa_user 数据表
|
||||
|
||||
|
@ -105,7 +190,7 @@ public interface GeneralMapper {
|
|||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 主键 | bigint unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `job_id` | 工作ID:正则表达 "^[STU\|TEA\|OTH][0-9]{7}" | char(10) | UNI | NO | | |
|
||||
| 2 | `job_id` | 工作ID:正则表达 "^\[STU\|TEA\|OTH\]\[0-9\]{7}" | char(10) | UNI | NO | | |
|
||||
| 3 | `username` | 用户名 | varchar(40) | UNI | NO | | |
|
||||
| 4 | `password` | 密码 | varchar(255) | | NO | | |
|
||||
| 5 | `address` | 用户家庭地址 | varchar(255) | | NO | | |
|
||||
|
@ -131,12 +216,16 @@ public interface GeneralMapper {
|
|||
|
||||
#### 说明
|
||||
|
||||
> 【角色表】包含所有的角色(目前主要为三个,学生、老师、管理员)
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 角色id | int unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `role_name` | 角色名称 | varchar(20) | | NO | | |
|
||||
| 3 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
|
||||
| 4 | `updated_at` | 修改时间 | timestamp | | YES | | |
|
||||
|
||||
|
||||
|
||||
|
@ -144,10 +233,12 @@ public interface GeneralMapper {
|
|||
|
||||
#### 说明
|
||||
|
||||
> 【权限表】所有的权限,具体到每一个功能
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :----------: | :------------------------: | :-------------: | :--: | :--: | :------------: | :----: |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 主键 | bigint unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `pid` | 权限父id | bigint unsigned | MUL | YES | | |
|
||||
| 3 | `name` | 权限名称 | varchar(100) | | NO | | |
|
||||
|
@ -159,26 +250,47 @@ public interface GeneralMapper {
|
|||
|
||||
### oa_role_user 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
> 【用户角色分配表】为用户赋予默认权限属性的内容
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :---: | :----: | :-------------: | :--: | :--: | :--: | :----: |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `uid` | 用户id | bigint unsigned | PRI | NO | | |
|
||||
| 2 | `rid` | 角色id | int unsigned | MUL | NO | | |
|
||||
| 3 | `createdt_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
|
||||
| 4 | `updated_at` | 修改时间 | timestamp | | YES | | |
|
||||
|
||||
|
||||
|
||||
### oa_role_permissions 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
> 【角色权限表】为角色赋予指定权限操作
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :---: | :----: | :-------------: | :--: | :--: | :--: | :----: |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `rid` | 角色id | int unsigned | PRI | NO | | |
|
||||
| 2 | `pid` | 权限id | bigint unsigned | MUL | NO | | |
|
||||
| 3 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
|
||||
|
||||
|
||||
|
||||
### oa_project 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
> 【项目表】用于存放项目相关内容
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :----------------: | :----------------------: | :--------------: | :--: | :--: | :------------: | :----: |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 项目id | bigint unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `name` | 项目名称 | varchar(255) | | NO | | |
|
||||
| 3 | `description` | 一句话描述 | varchar(255) | | NO | | |
|
||||
|
@ -195,8 +307,14 @@ public interface GeneralMapper {
|
|||
|
||||
### oa_project_type 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
> 【项目类型表】用于存放项目种类的种类分类表
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :----------: | :--------: | :----------: | :--: | :--: | :---------------: | :---------------: |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 项目类型id | int unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `name` | 类型名字 | varchar(50) | | NO | | |
|
||||
| 3 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
|
||||
|
@ -204,13 +322,39 @@ public interface GeneralMapper {
|
|||
|
||||
|
||||
|
||||
### oa_user_project 数据表
|
||||
### oa_project_cutting 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :----------: | :--------------: | :-------------: | :--: | :--: | :---------------: | :---------------: |
|
||||
| :--: | :--------------: | :--------------: | :--------------: | :--: | :--: | :---------------: | :---------------: |
|
||||
| 1 | `id` | 主键 | bigint unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `pid` | 项目id | bigint unsigned | MUL | NO | | |
|
||||
| 3 | `name` | 项目分割模块名字 | varchar(40) | | NO | | |
|
||||
| 4 | `tag` | 模块标签 | json | | YES | | |
|
||||
| 5 | `engineering` | 工程量计算 | tinyint unsigned | | NO | | 1 |
|
||||
| 6 | `estimated_time` | 预估时间(小时) | int unsigned | | NO | | 3 |
|
||||
| 7 | `real_time` | 实际时间 | timestamp | | YES | | |
|
||||
| 8 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
|
||||
| 9 | `updated_at` | 修改时间 | timestamp | | YES | | |
|
||||
|
||||
|
||||
|
||||
### oa_project_user 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
> 【用户项目分配表】用于存放用户所分配到的子项目内容
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 主键id | bigint unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `uid` | 用户id | bigint unsigned | MUL | NO | | |
|
||||
| 3 | `pid` | 接到分割项目内容 | bigint unsigned | | NO | | |
|
||||
| 3 | `pid` | 接到分割项目内容 | bigint unsigned | MUL | NO | | |
|
||||
| 4 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
|
||||
| 5 | `updated_at` | 修改时间 | timestamp | | YES | | |
|
||||
|
||||
|
@ -218,8 +362,12 @@ public interface GeneralMapper {
|
|||
|
||||
### oa_config 数据表
|
||||
|
||||
#### 说明
|
||||
|
||||
#### 数据表字段属性
|
||||
|
||||
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
|
||||
| :--: | :----------: | :--------: | :-------------: | :--: | :--: | :---------------: | :---------------: |
|
||||
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
|
||||
| 1 | `id` | 主键 | bigint unsigned | PRI | NO | auto_increment | |
|
||||
| 2 | `value` | 调用关键字 | varchar(50) | UNI | NO | | |
|
||||
| 3 | `data` | json数据 | json | | YES | | |
|
||||
|
|
|
@ -146,14 +146,8 @@ CREATE TABLE `oa_user` (
|
|||
--
|
||||
-- 表的结构 `oa_user_project`
|
||||
--
|
||||
|
||||
CREATE TABLE `oa_user_project` (
|
||||
`id` bigint UNSIGNED NOT NULL COMMENT '主键id',
|
||||
`uid` bigint UNSIGNED NOT NULL COMMENT '用户id',
|
||||
`pid` bigint UNSIGNED NOT NULL COMMENT '接到分割项目内容',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` timestamp NULL DEFAULT NULL COMMENT '修改时间'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户项目表';
|
||||
-- 读取表 organize_oa.oa_user_project 的结构时出错: #1146 - Table 'organize_oa.oa_user_project' doesn't exist
|
||||
-- 读取表 organize_oa.oa_user_project 的数据时发生错误: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `organize_oa`.`oa_user_project`' at line 1
|
||||
|
||||
--
|
||||
-- 转储表的索引
|
||||
|
@ -216,13 +210,6 @@ ALTER TABLE `oa_user`
|
|||
ADD UNIQUE KEY `oa_user_phone_uindex` (`phone`),
|
||||
ADD UNIQUE KEY `oa_user_username_uindex` (`username`);
|
||||
|
||||
--
|
||||
-- 表的索引 `oa_user_project`
|
||||
--
|
||||
ALTER TABLE `oa_user_project`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `oa_user_project_oa_user_id_fk` (`uid`);
|
||||
|
||||
--
|
||||
-- 在导出的表使用AUTO_INCREMENT
|
||||
--
|
||||
|
@ -263,12 +250,6 @@ ALTER TABLE `oa_role`
|
|||
ALTER TABLE `oa_user`
|
||||
MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键';
|
||||
|
||||
--
|
||||
-- 使用表AUTO_INCREMENT `oa_user_project`
|
||||
--
|
||||
ALTER TABLE `oa_user_project`
|
||||
MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键id';
|
||||
|
||||
--
|
||||
-- 限制导出的表
|
||||
--
|
||||
|
@ -283,27 +264,21 @@ ALTER TABLE `oa_permissions`
|
|||
-- 限制表 `oa_project`
|
||||
--
|
||||
ALTER TABLE `oa_project`
|
||||
ADD CONSTRAINT `oa_project_oa_project_type_id_fk` FOREIGN KEY (`type`) REFERENCES `oa_project_type` (`id`);
|
||||
ADD CONSTRAINT `oa_project_oa_project_type_id_fk` FOREIGN KEY (`type`) REFERENCES `oa_project_type` (`id`) ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- 限制表 `oa_role_permissions`
|
||||
--
|
||||
ALTER TABLE `oa_role_permissions`
|
||||
ADD CONSTRAINT `oa_role_permissions_oa_permissions_id_fk` FOREIGN KEY (`pid`) REFERENCES `oa_permissions` (`id`) ON DELETE CASCADE,
|
||||
ADD CONSTRAINT `oa_role_permissions_oa_role_id_fk` FOREIGN KEY (`rid`) REFERENCES `oa_role` (`id`) ON DELETE CASCADE;
|
||||
ADD CONSTRAINT `oa_role_permissions_oa_permissions_id_fk` FOREIGN KEY (`pid`) REFERENCES `oa_permissions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `oa_role_permissions_oa_role_id_fk` FOREIGN KEY (`rid`) REFERENCES `oa_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- 限制表 `oa_role_user`
|
||||
--
|
||||
ALTER TABLE `oa_role_user`
|
||||
ADD CONSTRAINT `oa_role_user_oa_role_id_fk` FOREIGN KEY (`rid`) REFERENCES `oa_role` (`id`),
|
||||
ADD CONSTRAINT `oa_role_user_oa_user_id_fk` FOREIGN KEY (`uid`) REFERENCES `oa_user` (`id`) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- 限制表 `oa_user_project`
|
||||
--
|
||||
ALTER TABLE `oa_user_project`
|
||||
ADD CONSTRAINT `oa_user_project_oa_user_id_fk` FOREIGN KEY (`uid`) REFERENCES `oa_user` (`id`);
|
||||
ADD CONSTRAINT `oa_role_user_oa_user_id_fk` FOREIGN KEY (`uid`) REFERENCES `oa_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
COMMIT;
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
|
|
Loading…
Reference in New Issue
Block a user