JSL_OrganizeInternalOA/doc/OrganizeInternalOA-ConfigTableConfig.md

84 lines
3.3 KiB
Markdown
Executable File
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.

# OrganizeInternalOA Config表详细内容设计
<div align=right>Author: 筱锋xiao_lfeng | Version: 1.1.0</div>
## oa_config 数据表
### 数据表结构
| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
| :--: | :----------: | :--------: | :-------------: | :--: | :--: | :---------------: | :---------------: |
| 1 | `id` | 主键 | bigint unsigned | PRI | NO | auto_increment | |
| 2 | `value` | 调用关键字 | varchar(50) | UNI | NO | | |
| 3 | `data` | json数据 | json | | YES | | |
| 4 | `created_at` | 创建时间 | timestamp | | NO | DEFAULT_GENERATED | CURRENT_TIMESTAMP |
| 5 | `updated_at` | 修改时间 | timestamp | | YES | | |
### 各功能内容解释
1. `id` : 主键,构建索引所用
2. `value` : 构建索引,用于索引字符串内容,方便对 `data` 的获取
3. `data` : 输出的 json 数据(重要)
4. `created_at` : 创建时间
5. `updated_at` : 修改时间
## 说明
> 在这张数据表中,为存储相关配置信息,例如前端需要展示的轮播图、展览业、合作厂商列表、优秀成员列表等等,为了方便开发以及后续维护不需要进行额外进行对表的设计(对于新的一个前端展示功能模块就要新建一张表,显得麻烦),故将所有的内容压缩到这张表,需要展示的内容已结构化 json 数据存储到 `data` 字段。下面是内容举例。
假设我现在有一个config表
id value data
然后我有两个前端模块要动态(可修改)展示,一个是团队信息展示,另外一个轮播图,那么我新增一行
id为主键不管团队成员信息定义valueorganize_user_info设计数据结构最终结构化为json存储到 data
轮播图一样定义value: image_index设计数据结构存储 data
一段时间后,有新的业务要展示,例如合作厂家展示
那就在这张表新建一行数据定义value:cooperate然后设计数据结构 存储data
以后有新的展示业务,以此类推。
这样取对应地方数据WHERE value后取出data直接发送前端或定时解析后给redis。也不用一个业务新建一张表也没那么多数据表查找循环。
对于数据体量非巨大的应该有一定可行性。
## 轮播图数据结构设计
```json
{
"order": string,
"data": [
{
"display_order": integer,
"image": string,
"title": string,
"description": string,
"is_active": boolean,
"created_at": timestamp,
"updated_at": timestamp,
"author": string
},
{
......
}
]
}
```
1. `order`: 展示顺序,可选值 [asc|desc]
2. `data`: 数据内容
1. `display_order`: 展示顺序输入integer自定义处理
2. `image`: 图片地址
3. `title`: 标题
4. `description`: 描述
5. `is_active`: 是否展示 [true|false]
6. `created_at`: 创建时间
7. `updated_at`: 修改时间
8. `autohr`: 填写作者