3

DynamoDB Java Persistence Model を使用して 2 つのテーブル間の関係を作成することは可能ですか?

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 でこれを行う正しい方法ですか、それとももっと良い方法がありますか?

4

2 に答える 2

4

1 つの投稿に多くのコメント。次のテーブルが必要です: 1. 投稿テーブル: post-id (ハッシュ キー)、2. コメント テーブル: post-id (ハッシュ キー)、comment-id (範囲キー)

投稿のすべてのコメントを取得するには、HashKey (post-id) を指定するだけでコメント テーブルをクエリします。

Java 側では、Dynamo DB Mapper でマッピングされた 2 つのクラス (投稿、コメント) があります。

DynamoDBMapper (AWS 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 ashash_key
  • 題名
  • ...

テーブルComments_MyApp

  • article_id ashash_key
  • 日時range_key
  • 文章
  • ...

これにより、記事のすべてのコメントを 1 回で取得しQueryたりlimitExclusiveStartKey

ちなみに、DynamoDb ドキュメントの付録で優れた例を見つけました: http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/SampleTablesAndData.html

于 2012-11-20T14:45:01.043 に答える