gpt4 book ai didi

indexeddb - indexedDB 是否支持外键?如果没有,我可以模拟外键吗?

转载 作者:行者123 更新时间:2023-12-03 15:01:58 27 4
gpt4 key购买 nike

我正在构建一个利用 IndexedBD 的网络应用程序。我来自 SQL 背景,所以概念不同。具体来说,我的理解是 indexedDB 中没有“外键”的真正概念。因此,我试图找出检索相关对象的最快方法,在 SQL 世界中,该对象将是外键。

例如,对于 SQL,假设我们有以下表:

table carBrand:
brandName
brandInitial
table carModel:
modelName
brand (FK)

现在,如果我们在 carBrand 中有记录其中持有 brandName=Ford , brandInitial='F'然后记录在 carModel保存数据 modelName = Mustangbrand = (FK)Ford .

显示 brandInitialMustang在 SQL 世界中记录,我可以使用点“。”符号。简单地说, myCarInstance.brand.brandInitial将显示 F .我不必存储到 brandInitialcarModel记录,因为指向外键的指针保存了该数据。

现在转移到 indexedDB,同样的场景会像这样设置:
objectStore "carBrand"
objectStore "carModel"

要拥有相同的记录(福特野马),我的理解是我们会做两个 .add调用。首先,我们添加 brandName: "Ford" .接下来(这里是我对“最佳实践”的理解不可靠的地方)添加“福特野马”,我们将向 carModel 添加一条记录。具有此数据的存储:
modelName: "Mustang"
brand: "Ford"

那么,有了这个数据设置,是否有一种“快速”的方法来检索记录的 brandInital ?我是否必须打开交易才能检索 F品牌初始还是我应该使用其他一些方法?

最佳答案

在像 indexeddb 这样的键值存储中,对象存储之间没有关系。如果您的关系是父子关系,则可以使用分层键,例如 [carBrand, carModel]。在 appengine db api 中查看有关分层键的更多详细信息。

关于indexeddb - indexedDB 是否支持外键?如果没有,我可以模拟外键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21464124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com