0

我的问题集中在 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 函数,但同样 - 我不知道在这种情况下该怎么做。

有什么建议么?

非常感谢

4

0 回答 0