IndexedDB索引概念?

时间:2014-05-05 22:12:28

标签: javascript indexeddb

我对IndexedDB背后的概念进行了很多研究,但是我很难理解它如何应用于我的应用程序。

我想在IndexedDB中存储大量关键字。一些关键字用于汽车,其他用于水果。现在我的应用程序使用正则表达式匹配关键字并返回字符串是否与汽车和/或水果有关。我猜我必须使用包含car关键字的表达式和包含fruit关键字的另一个表达式(我从IndexedDB中提取)。

我的问题是我应该如何构建我的IndexedDB?

MyApp (db) > Keywords (table) > { keyword: Honda (value), category: Cars }
MyApp (db) > Keywords (table) > { keyword: Apple (value), category: Fruits }

然后:

objectStore.createIndex('category');

然后按关键字值搜索是否与“汽车”或“水果”匹配,以返回与该主题相关的关键字列表。

有人可以向我解释这是否是构建我的数据库的正确方法,或者我应该为汽车和水果建立一个单独的表。

1 个答案:

答案 0 :(得分:0)

如果您已经在列表中有keywords,并且您需要查询数据库以检查该值是category,那么我建议您index使用您的数据库keyword field这样你将获得最佳表现。

objectStore.createIndex('keyword');

如果使用category索引,则需要使用游标迭代所有项目,并且由于多个对象属于同一类别,因此速度较慢。

此外,如果您的关键字列表可以包含carsfruits,那么您需要将所有对象保留在同一个表中,否则您可以将数据拆分为更多表以提高性能。