0%

动态列的实现

动态列的实现

table中动态列的实现

场景

image-20210104183203013

存储方式

  1. mysql行存储,取出时多行转1行。
  2. MongoDB
  3. 存为json
  4. 动态修改表字段

具体实现

mysql行存储

优点:统一数据库,InnoDB有事务支持

缺点:增删改都是批量操作,复杂。

后端逻辑

修改

1
2
3
4
5
6
7
8
9
10
11
12
13
// 新增
List<HrSalaryStandardConfigurationAddVO> listAdd = new ArrayList<HrSalaryStandardConfigurationAddVO>();
// 修改
List<HrSalaryStandardConfigurationUpdateVO> listUpdate = new ArrayList<HrSalaryStandardConfigurationUpdateVO>();
// 删除
List<String> listLogialDelete = new ArrayList<>();

// 确定 money = null值是否传了薪档id
// 修改前查询库中的薪资标准配置
List<String> previousList = hrSalaryStandardConfigurationMapper.getByDeptAndPost(data.get(0).getDeptId(), data.get(0).getPostId());
// 库中与页面对比出 1.新增集合 2.修改集合 3.删除集合

// 执行新增、修改、删除

MongoDB

单文档事务支持

json

优点:存储方便

缺点:无法用sql进行条件查询

动态修改表字段

缺点:不安全