3

是否可以使用 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 执行此操作的正确方法,还是有其他方法可以做得更好?

4

2 回答 2

4

一篇文章多评论。您只需要以下表格:1. Post 表:post-id(Hash Key),2. Comment 表:post-id(Hash Key),comment-id(Range Key)

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

在 Java 方面,您将使用 Dynamo DB Mapper 映射 2 个类(Post、Comments)。

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

于 2014-02-11T13:53:01.077 回答
0

我根本不了解 Java SDK,但从设计的角度来看,我可以建议您采用“DynamoDBier”方法吗?

桌子Post_MyApp

  • article_id 为hash_key
  • 标题
  • ...

桌子Comments_MyApp

  • article_id 为hash_key
  • 日期时间为range_key
  • 文本
  • ...

这使您可以在一篇文章中获取所有评论,Query甚至可以使用limit和进行分页ExclusiveStartKey

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

于 2012-11-20T14:45:01.043 回答