【问题标题】:One-to-many in DynamoDB with Java Object Persistence ModelDynamoDB 中的一对多与 Java 对象持久性模型
【发布时间】:2012-11-19 23:59:11
【问题描述】:

是否可以使用 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
}

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

【问题讨论】:

    标签: java nosql amazon amazon-dynamodb


    【解决方案1】:

    一个帖子给许多 cmets。您只需要以下表格: 1. Post表:post-id(Hash Key), 2、评论表:post-id(Hash Key)、comment-id(Range Key)

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

    在 Java 方面,您将使用 Dynamo DB Mapper 映射 2 个类(帖子、评论)。

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

    【讨论】:

      【解决方案2】:

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

      Post_MyApp

      • article_id 为hash_key
      • 标题
      • ...

      Comments_MyApp

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

      这允许您在单个 Query 中获取一篇文章的所有 cmets,甚至可以使用 limitExclusiveStartKey 进行分页

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-26
        • 1970-01-01
        • 1970-01-01
        • 2011-12-18
        • 1970-01-01
        • 1970-01-01
        • 2014-08-06
        • 2021-04-05
        相关资源
        最近更新 更多