本帖最后由 bytcib 于 2020-6-11 16:14 编辑
项目中我们将整个workbook保存为一条数据记录存放在数据库中,但由此造成了多人同时在线编辑时对该条数据的修改保存会造成表中数据的互相覆盖,为了实现局部保存功能,我们使用了postgreSQL数据库中的jsonb局部修改语句来执行数据的局部更新,例如:
UPDATE testjson set info = jsonb_set((SELECT info from testjson where id = 4)::jsonb, '{sheets,页面名称,data,dataTable,0,5,value}', '"newValue"'::jsonb, false) where id = 4
其中语句中的记录id, 页面名称,脏数据数组(包含了row,col,newValue)等变量我们通过post发到后端服务器,并将该语句执行成功了,但是发现一个问题:
这是我们提取出的一条workbook记录:
记录结构展开:
页面对应位置:
我们发现在没有value或者formula的地方在数据库中不会记录其对应的row,col位置,所以在没有填写过值或公式的单元格中没有办法使用当前的updete语句,请问有什么方法能让数据库中这些没有赋值和公式的单元格有对应的位置记录吗(不会出现类似例子中55-62列没有的情况,但是不能将value直接赋值为0,因为会参与到有些平均类公式的计算)?
|
|