【问题标题】:How I can relate objectstore in IndexedDB?如何关联 IndexedDB 中的对象存储?
【发布时间】:2016-07-25 07:22:01
【问题描述】:

我创建了一个包含 2 个 IndexedDB 对象存储的数据库。 这样我就可以把它当作外键来联系。 该数据库包含一个对象存储,称为患者,另一个称为证据,然后想要添加与患者相关的测试。

Photo DataBase IndexedDb

【问题讨论】:

    标签: indexeddb


    【解决方案1】:

    在 indexedDB 本身中,您不能在 2 个 objectStores 之间建立关系。 IndexedDB 不是关系数据库系统。如果你想有一个关系,你必须在你的javascript代码中实现这个关系。

    如果您有 2 个 objectStores,即包含对象:

    patient = {"number":"1234", name:"Michael Foo"}; // where "number"is the key
    evidence = {"id":"1","content":"yes, its true","patientId":"1234"}; // where "id" is the key 
    

    您可以将“patientId”定义为Index。所以你可以查找“patientId”。 如果您同时需要两者,则查询患者,然后使用“数字”值查询索引“患者Id”。所以你两者都有。

    如果您想从 2 个 objectStores 中删除数据,并且您想确定两个 objectStores 中的值都将被删除,您可以在一个 transaction 中执行此操作。所以如果某部分事务抛出错误,可以取消空洞事务,进行回滚……

    【讨论】:

      猜你喜欢
      • 2012-12-14
      • 2021-09-08
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多