一条数据中的字段太多,200多个,尝试将字段全部建在一张表内,出现错误:
尝试了网上各种办法后依然无效,无奈考虑到垂直分表,将字段分别建立在两张表内。
其中有几点值得记录:【数据持久化使用 Mybatis】
1、创建表:两张表需要有一个 取值 相同的字段 id:字段名可以相同,也可以不同,但字段值要相同;以此确定两张表中的一条数据,
2、查询时:第1 张表 Table1 左外连接(Left Outer Join ) 第2 张表 Table2 on Table1.id = Table2.id
3、新增时,判断字段属于哪一个表,根据字段所属表,将数据插入到对应表内。
(1)、要插入的数据 ,全部封装在 一个 PG内(我自己代码里写的一个键值对 Map,键:字段名,值:字段值)
(2)、在 Mapper 内明确好 每个表的表名,所包含的字段,
(3)、拼接好 每个表 新增数据的 SQL语句
(4)、PG 传入后,自动匹配字段,从而自动插入到不同的表
=============================分割线==============================
另一个需求:由于我的数据是分批上传,需要保留每一批上传数据的历史记录,因此::
1、在两个表内 都增加一个 “recordid” 字段,每一批数据一个唯一的 recordid (实质上只需要第一个表有这个字段就行,两个表数据根据相同的 ID 关联 ,我这里第二个表也存了recordid,有数据冗余,只是直觉感觉到以后会用到,具体哪里会用到还不知道)。
2、新增一个 record 表,表内至少有一个 recordid 字段,create_time 字段, 还有其他业务需要的自定义字段,保存每次上传信息。
3、查询上传记录时,首先查询 record 表,再从 record 表 内提取 recordid 去数据表内查询 该批次数据。