DynamoDB中的一对多关系

时间:2013-05-24 13:56:41

标签: nosql amazon-dynamodb

我想知道在DynamoDB中使用一对多关系的最佳方法是什么。我们假设我有postcategory个表。 category表格包含idname列。 post表格包含idtitlecategory_id列。使用关系数据库,我将使用两个表之间的连接。我知道我无法在DynamoDB中加入两个表。当我在页面中提供几个带有类别的文章摘要时,我知道使用RDBMS时,每次我想获取类别名称时都不需要运行查询。

我见过许多将类别名称作为名称而不是ID嵌入的示例,因此我只需阅读该文档,并且我可以通过单个查询获得所有信息。问题是,当我想用​​DynamoDB更改类别名称时,我需要运行扫描查询来更新列 - 我不想这样做。我考虑使用category_id并使用缓存,以便在分页时不重复类别名称查询。任何好的建模技术如何用DynamoDB解决这个问题?

1 个答案:

答案 0 :(得分:1)

一般来说,人们处理与NoSQL数据库连接的方式是复制数据,以便您可以查询数据并获得所有必需的数据。

如果您的类别列表相当小(10-1000条记录),您可以将类别ID存储在posts表中,并在代码缓存中存储类别的名称,并在找到时转换并在代码中“追加”类别名称特定类别ID。

与SQL数据库相比,NoSQL数据建模是一种非常不同的野兽。通常,您希望数据“平坦”,这样您就可以在单个请求/查询中查询并拥有所有数据。