是否可以使用 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
中获取文章的所有评论,甚至可以使用limit
和ExclusiveStartKey
进行分页
顺便说一下,我在 DynamoDb 文档的附录中找到了很好的例子:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/SampleTablesAndData.html