Amazon dynamodb 如何在DynamoDB中分配外键?

Amazon dynamodb 如何在DynamoDB中分配外键?,amazon-dynamodb,Amazon Dynamodb,我在试着用迪纳摩DB。我正在尝试测试Dynamo DB表,但在此无法获取外键。Dynamo DB没有外键。它是一个不支持这种关系数据的NoSQL数据库。表之间没有维护数据完整性,因此这种行为不是内置的。如果你想有这种行为,你必须用另一种方式在DynamoDB中为你的数据存储建模 根据解释,它不是关系数据库: 而Amazon DynamoDB则解决了数据库的核心问题 可扩展性、管理、性能和可靠性,而不是 拥有关系数据库的所有功能。事实并非如此 支持复杂的关系查询(例如联接)或复杂的 交易。如果您的

我在试着用迪纳摩DB。我正在尝试测试Dynamo DB表,但在此无法获取外键。

Dynamo DB没有外键。它是一个不支持这种关系数据的NoSQL数据库。表之间没有维护数据完整性,因此这种行为不是内置的。如果你想有这种行为,你必须用另一种方式在DynamoDB中为你的数据存储建模

根据解释,它不是关系数据库:

而Amazon DynamoDB则解决了数据库的核心问题 可扩展性、管理、性能和可靠性,而不是 拥有关系数据库的所有功能。事实并非如此 支持复杂的关系查询(例如联接)或复杂的 交易。如果您的工作负载需要此功能,或者 为了与现有的关系引擎兼容,您可以 希望在AmazonRDS或AmazonEC2上运行关系引擎。虽然 关系数据库引擎提供了强大的特性和功能, 将工作负载扩展到单个关系数据库实例之外是非常困难的 非常复杂,需要大量的时间和专业知识


Dynomodb没有外键。Dynomodb是非关系数据库,但它包含表。

您的确切意思是什么?DynamoDB不是关系数据库。你应该说出你的实际问题是什么,而不是要求一个具体的解决方案。此外,您上面的评论并没有给对话添加任何内容。我们是否应该在Dynamo DB中定义外键?外键与SQL Server中的外键类似。@MikeKobit您明白了吗?沿着这个问题的脉络-在另一个表中使用另一个表的哈希键,例如
Users.id
,或者在另一个表中使用
Payments.id
,是不是一个好主意,因此,您可以直接搜索
Payments.id==Users.id
,在Dynamo中创建类似外键的映射,并允许直接查询?我能看到的唯一一件事是,除非您将其命名为Payments.userId并将其设置为散列键,否则它不是自文档,但在命名散列键索引(如Payments.Id、Users.Id、Wallet、Id、,等等,我刚刚意识到,您可以获得与全局二级索引类似的外键关系,如果您需要一个排序的外键来防止扫描和筛选,那么您可以向全局二级索引添加一个范围键。这应该允许您仍然为每个不同的表维护唯一的ID,同时仍然添加外键(如可查询性),并保留范围键的最佳部分,即自动排序和键条件表达式比较操作,如>,