2

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

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

4

1 回答 1

1

通常,人们使用 NoSQL 数据库处理连接的方式是复制数据,以便您可以查询数据并获得所有需要的数据。

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

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

于 2013-08-09T13:15:55.530 回答