我正在构建一个使用IndexedBD的网络应用程序。我来自SQL背景,因此概念不同。具体来说,我的理解是indexedDB中没有“外键”的真实概念。因此,我试图找出检索相关对象的最快方法,在SQL世界中,这将是一个外键。
例如,使用SQL,假设我们有以下表格:
table carBrand:
brandName
brandInitial
table carModel:
modelName
brand (FK)
现在,如果我们在carBrand
中有一条记录,其中包含brandName=Ford
,brandInitial='F'
,然后是carModel
中包含数据modelName = Mustang
和{的记录{1}}。
要在SQL世界中显示此brand = (FK)Ford
记录的brandInitial
,我可以使用点“。”符号。简单地说,Mustang
会显示myCarInstance.brand.brandInitial
。我不必存储到F
记录中的brandInitial
,因为指向外键的指针包含该数据。
现在转向indexedDB,会设置相同的场景:
carModel
要拥有相同的记录(福特野马),我的理解是我们会进行两次objectStore "carBrand"
objectStore "carModel"
次呼叫。首先,我们添加.add
。接下来(以及我对“最佳实践”的理解并不完整)添加“福特野马”,我们会在brandName: "Ford"
商店中添加一条记录,其中包含以下数据:
carModel
因此,设置此数据后,是否有“快速”方式来检索记录的modelName: "Mustang"
brand: "Ford"
?我是否必须打开一个仅的交易来检索brandInital
品牌的首字母,或者我还应该使用其他方法吗?
答案 0 :(得分:0)
在像indexeddb这样的键值存储中,objectstore之间没有关系。如果您的关系是父子关系,则可以使用分层键,例如[carBrand,carModel]。在appengine db api中查看有关分层键的更多详细信息。