2016-09-20 12 views
0

メッセージの送信時にトリガーを使用して別のユーザーにプッシュする方法を検討します。Cassandraとトリガーを使用してチャットアプリケーションのアーキテクチャとテーブルデザインを最適化する方法

+0

これは簡単な例ですが、あなたは最新のメッセージに基づいた順序、ユーザーのチャットのようなものをしようとする機能強化に見えるかもしれません、など、非常に良いアイデアではありません。私はメッセージを送信し、トリガーがテーブルにそれを書き込む場合、どのように私のコンパニオンはそれを受け取るのだろうか?私はメッセージを配信するための他のメカニズムを使用し、カサンドラにチャットの履歴のみを書く方が良いでしょう – Sabik

答えて

0

メッセージを配信するためにトリガーを使用しないことについて@Sabikと合意すると、アプリケーション内で処理する方がよいでしょう。

チャットの履歴を保存する場合は、次のような方法を試してみるとよいでしょう。

チャットは両方のユーザーが同じであることを考慮すると、チャットごとにIDを持つように一度保存するだけです。ユーザーが関わっているすべてのチャットを保存するために別のテーブルを用意することができます。これにより、2人以上のユーザーを含むチャットをグループ化する拡張機能が許可されます。私が考える

CREATE TABLE chatsPerUser (
"user1" uuid, 
"chatID" uuid, 
PRIMARY KEY ("user1") 
); 

//Add any other metadata you need 
CREATE TABLE chat (
"chatID" uuid, 
ts timestamp, 
userID uuid, 
message text, 
PRIMARY KEY (("chatID"),ts) 
); 
関連する問題