【发布时间】:2014-02-23 04:57:20
【问题描述】:
我正在构建一个使用 IndexedBD 的网络应用程序。我来自 SQL 背景,所以概念不同。具体来说,我的理解是 indexedDB 中没有“外键”的真正概念。因此,我试图找出检索相关对象的最快方法,在 SQL 世界中,该对象将是外键。
以 SQL 为例,假设我们有以下表:
table carBrand:
brandName
brandInitial
table carModel:
modelName
brand (FK)
现在,如果我们在carBrand 中有一条记录,其中包含brandName=Ford、brandInitial='F',然后在carModel 中有一条记录,其中包含数据modelName = Mustang 和brand = (FK)Ford。
要在 SQL 世界中显示此 Mustang 记录的 brandInitial,我可以使用点“。”符号。简单地说,myCarInstance.brand.brandInitial 将显示F。我不必存储到carModel 记录中的brandInitial,因为指向外键的指针保存了该数据。
现在转移到 indexedDB,同样的场景会这样设置:
objectStore "carBrand"
objectStore "carModel"
为了拥有相同的记录(福特野马),我的理解是我们会进行两次.add 通话。首先,我们添加brandName: "Ford"。接下来(这也是我对“最佳实践”的理解不明确的地方)添加“Ford Mustang”,我们将向包含此数据的carModel 存储添加一条记录:
modelName: "Mustang"
brand: "Ford"
那么,有了这个数据设置,有没有一种“快速”的方法来检索记录的brandInital?我是否必须打开一个交易只是来检索F 品牌首字母,或者我应该使用其他方法吗?
【问题讨论】:
标签: indexeddb