Indexing IndexedDB-我是否需要一个;id";领域

Indexing IndexedDB-我是否需要一个;id";领域,indexing,indexeddb,Indexing,Indexeddb,在阅读了几篇教程之后,我仍然无法完全理解IndexedDB。。。 我已经用它构建了一个“游乐场应用程序”,但在继续之前我有一个问题 是否建议在ObjectStores中使用不同的“id”字段 如果索引42处的对象(没有id字段)需要更新,会发生什么情况?[据我所知,IndexedDB没有更新命令。]如何在不破坏对该对象的引用的情况下就地交换/更新该对象 当您有一个id字段时-如何在向ObjectStore添加新对象时查找未使用的id值?有没有聪明的办法 我找不到关于这件事的讨论在某处或其他地方

在阅读了几篇教程之后,我仍然无法完全理解IndexedDB。。。 我已经用它构建了一个“游乐场应用程序”,但在继续之前我有一个问题

是否建议在ObjectStores中使用不同的“id”字段

如果索引42处的对象(没有id字段)需要更新,会发生什么情况?[据我所知,IndexedDB没有更新命令。]如何在不破坏对该对象的引用的情况下就地交换/更新该对象

当您有一个id字段时-如何在向ObjectStore添加新对象时查找未使用的id值?有没有聪明的办法

我找不到关于这件事的讨论在某处或其他地方


干杯

不需要使用id,但建议使用id,因为它可以简化程序的编写。此建议适用于传统的关系数据库(SQL)和indexedDB(NoSQL)

使用简单的整数计数器很有帮助,建议您使用,即使您有另一个属性或属性组(复合/复合主键)唯一地标识存储中的每个对象

indexedDB提供了一种生成“未使用”id值的方法。调用createObjectStore并设置密钥路径时使用autoincrement标志

请参阅以了解更多信息。具体来说,请查看有关对象存储键的部分

关于42问题,您可以,然后按42,然后检索值,更改其属性,然后,如果基础事务处于读写模式,您可以调用以替换光标位置处的对象。不推荐使用此技术,主要是因为它不实用,并且可能会令人困惑。最好使用简单的自动递增整数id,尤其是在您刚刚学习的时候

表示键的属性的名称是什么并不重要,只要它符合普通的JavaScript对象属性命名规则,并且您可以一致地访问它