是否可以使用DynamoDB Java持久模型在两个表之间创建关系?
我有以下关系:One Post to Many Comments
@DynamoDBTable(tableName="Post_MyApp")
public class Post {
private String id;
private String title;
private Set <Comment> comments;
//... Getters and setters and dynamo annotations
}
我有一个单独的评论表,该评论是另一个发电机表/实体。 我的想法是在SQL中创建一个post_comments表,其中包含帖子的所有注释。这是使用Dynamo执行此操作的正确方法,还是有其他方法可以更好地完成此操作?
答案 0 :(得分:4)
一个帖子到很多评论。您只需要以下表格: 1.帖子表:post-id(哈希键), 2.评论表:post-id(哈希键),comment-id(范围键)
要获取帖子的所有评论,只需提供HashKey(post-id)即可查询评论表。
在Java方面,您将使用Dynamo DB Mapper映射2个类(Post,Comments)。
DynamoDBMapper(适用于Java的AWS开发工具包 - 1.7.1):http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodb/datamodeling/DynamoDBMapper.html
答案 1 :(得分:0)
我根本不了解Java SDK,但从设计的角度来看,我可以建议您采用“DynamoDBier”方法吗?
Post_MyApp
hash_key
Comments_MyApp
hash_key
range_key
这样,您就可以在一个Query
中获取文章的所有评论,甚至可以使用limit
和ExclusiveStartKey
顺便说一句,我在DynamoDb文档的附录中找到了很好的例子:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/SampleTablesAndData.html