在 DynamoDB 中使用 Java 对象持久性模型的一对多



是否可以使用 DynamoDB Java 持久性模型在两个表之间创建关系?

我有一个帖子到多个评论的以下关系

@DynamoDBTable(tableName="Post_MyApp")
public class Post {
private String id;
private String title;
private Set <Comment> comments;
//... Getters and setters and dynamo annotations
}

我有一个单独的评论表,该评论是另一个发电机表/实体。我的想法是创建一个post_comments表,就像在SQL中一样,其中包含帖子的所有评论。这是使用 Dynamo 执行此操作的正确方法,还是有另一种方法可以做得更好?

一个帖子到许多评论。您只需要下表:1.帖子表:帖子ID(哈希键),2.注释表:后ID(哈希键),注释ID(范围键)

要获取帖子的所有评论,只需提供哈希键(post-id)即可查询评论表。

在 Java 端,您将有 2 个类(帖子、评论)与 Dynamo DB 映射器映射。

DynamoDBMapper (AWS SDK for Java - 1.7.1) : http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodb/datamodeling/DynamoDBMapper.html

我根本不了解Java SDK,但是从设计的角度来看,我可以建议你使用"DynamoDBier"方法吗?

Post_MyApp

  • article_id 饰 hash_key
  • 标题

Comments_MyApp

  • article_id 饰 hash_key
  • 日期时间作为range_key
  • 发短信

这使您可以在单个Query中获取文章的所有评论,甚至可以使用limitExclusiveStartKey进行分页

顺便说一下,我在 DynamoDb 文档的附录中找到了很好的例子:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/SampleTablesAndData.html

最新更新