Cassandra について 1 つのことがわかりません。たとえば、私は Facebook に似た Web サイトを持っており、人々は共有、いいね、コメント、画像のアップロードなどを行うことができます。
ここで、友達が行ったことをすべて取得したいとします。
- Username1 さんがあなたのコメントを高く評価しました
- username 2 さんがプロフィール写真を変更しました
等々。
user_likes
user_comments
したがって、多くのことを読んだ後、次のように、単一のものごとに新しい列ファミリーを作成する必要があると思いますuser_shares
。基本的に、考えつくことは何でもできますが、それを行った後でも、データを検索できるようにするために、ほとんどの列のセカンダリ インデックスを作成する必要がありますか? それでも、どのユーザーが自分の友達であるかをどのように知ることができますか? 最初にすべての友人 ID を取得してから、各ユーザー ID についてすべての列ファミリーを検索する必要がありますか?
編集 わかりましたので、もう少し読んで、物事をもう少しよく理解しましたが、まだテーブルを構造化する方法を本当に理解できないので、賞金を設定し、どのように私の方法の明確な例を取得したいですかこの種の順序でデータを保存および取得する場合、テーブルは次のようになります。
- 全て
- いいね
- コメント
- お気に入り
- ダウンロード
- 株式
- メッセージ
では、すべての友達またはフォローしている人の、最後にアップロードされた 10 個のファイルを取得したいとします。これは次のようになります。
John uploaded song AC/DC - Back in Black 10 mins ago
そして、コメントや共有のようなものはすべてそれに似ています...
おそらく最大の課題は、すべてのカテゴリの最後の 10 個のものを一緒に取得することです。したがって、リストはすべてのものの混合になります...
今、私は完全に詳細なテーブルでの答えは必要ありませんmysql
.joins