我的问题集中在 Dexie 库上,但我想它可能对 JavaScript 中的每个类似 json 的结构都有效,所以这里是:
我有多个由 IndexedDB 库(Dexie)在本地内存上创建的表,每次添加记录时它使用以下结构:
db.transaction('rw', db.table1, db.table2, ... , function() {
db.table1.add({
field101: value101,
field102: value102,
field103: value103,
field104: value104,
field105: value105,
field106: value106,
field107: value107,
field108: value108,
field109: value109,
field110: value110,
field111: value111
});
db.table2.add({
field201: value201,
field202: value202,
field203: value203,
field204: value204,
field205: value205
});
.
.
.
});
当我想修改数据时,代码如下所示:
db.transaction('rw', db.table1, db.table2, ... , function() {
bbdd.table1.where("value101").equals(x).modify({
field102: value102,
field103: value103,
field104: value104,
field105: value105,
field106: value106,
field107: value107,
field108: value108,
field109: value109,
field110: value110,
field111: value111
});
bbdd.table2.where("value201").equals(x).modify({
field202: value202,
field203: value203,
field204: value204,
field205: value205
});
.
.
.
});
我想减少代码以仅使用这些结构中的每一个。如果只有 2 张桌子就可以了,但是大约有 12 张桌子,而且会占用很多空间(并且在发生变化时必须更改两次)。
由于代码或多或少相同,我想添加一个变量,该变量将在添加或修改括号内包含所有这些字段,但我不知道该怎么做。此外,在修改代码中,不包括每个表的第一个值(它用于修改条件)。
我也考虑了一个 javascript 函数,但同样 - 我不知道在这种情况下该怎么做。
有什么建议么?
非常感谢