チャットデータを保存するためにcassandraを使用しています。すべてのユーザーの会話を維持し、受け取ったメッセージに基づいてそれらを並べ替える必要があります。カサンドラ:ユーザーの最近のカバーを表示
会話: 2人以上のユーザーの間でメッセージのストリームです。会話は終わりがなく、連続しています。
会話の作成時間に基づいて、「会話からのユーザー:」のテーブルを維持しています。しかし、受け取ったメッセージに基づいてソートしたいと思っています。
ソリューション
- ソリューション-1:
私は、マテリアライズド・ビューを使用することを示唆して同様の質問Cassandra: List 10 most recently modified records
を見てきました。メッセージのような頻繁に更新されるレコードでは、このアプローチは問題ありません。
- 解決策-2: 別の表を使用して、user_recentconversationsをリストに保持します。メッセージがユーザーに送受信されるときに、リストを更新します。
どのような解決策を提案してください。
年代順に「グローバルに」並べ替えてもよろしいですか?それとも、会話で会話を並べ替えるのですか? – xmas79
すべてのユーザーの会話を並べ替える必要があります。グローバルにソートする必要はありません。 whatsappの会話と同様に、会話の中に新しいメッセージがあるとすぐに最新の会話が上に来るはずです。 –
私の答えとあなたのコメントの後、私はあなたの質問がはっきりしないと思う。さらに、Cassandra-2.1を使用していますが、提案されたソリューション1では、Cassandra 3.0でのみ使用可能なマテリアライズド・ビューが示唆されています。 – xmas79