リレーショナル用語で考えることに慣れた私は、「noSQLのやり方」で考えることを理解しようとしています。
次のシナリオを想定します。
多くの投稿と登録ユーザーがいるブログ(例:9gag.com)があります。すべての投稿は、各ユーザーが高く評価することができます。レコメンデーションエンジンを構築したいので、以下を追跡する必要があります。
- ユーザーが閲覧したすべての投稿
- ユーザーが高く評価したすべての投稿
投稿には、タイトル、本文、カテゴリがあります。ユーザーには、ユーザー名、パスワード、電子メール、その他のデータがあります。
リレーショナルDBには、、、、、のようなものがposts
ありusers
ます。posts_users_views (post_id, users_id, view_date)
posts_users_likes (post_id, user_id, like_date)
質問
ドキュメント/列指向のnoSQLデータベースの「正しい」構造とは何ですか?
明確化:ユーザー内のすべての表示/高評価の投稿ID(または投稿内のユーザーID)の配列を保存する必要がありますか?もしそうなら、行サイズが大きくなるという問題はありませんか?