Google App Engine でアプリを作成して、よりよく学習できるようにしています。データストアにデータを永続化しています。
このアプリケーションは、StackOverflow に似たモデルです。Story エンティティがあり、Comment エンティティのコレクションがあり、多くのユーザーに好かれたり嫌われたりする可能性があります。私が今これをモデル化している方法は次のとおりです。
class Story {
Comment[] comments;
...
}
class Comment {
User[] likes;
User[] hates;
...
}
したがって、特定のストーリーをロードすると、すべてのコメントと、各コメントの好き嫌いの割合を一覧表示できます。特定のユーザーがコメントに投票したかどうかを追跡することもできます。
Comment エンティティ内のすべての実際のユーザーを遅延読み込みできると仮定していますが、それでも、これを行うためのより良い方法があると思います。
これは、何百ものコメントがあり、それぞれが何十万票もあるストーリーをどのように処理するのでしょうか?!
NoSQL でそのような概念をモデル化する一般的な方法は何ですか?