1 人が多くのユーザーと会話できるメッセージ システムを作成する必要があります。たとえば、user2、user3、user4 と話し始めると、誰でも会話全体を見ることができ、会話がいつでも非公開でない場合、参加者は他の人を会話に追加できます。
これを行う方法は次のとおりです。私は Mongo を使用しています。私の考えは、メッセージの代わりにダイアログをインスタンスとして使用することです。
スキーマは次のようにリストされます。
{
_id : ...., // dialog Id
'private' : 0 // is the conversation private
'participants' : [1, 3, 5, 6], //people who are in the conversation
'msgs' :[
{
'mid' : ...// id of a message
'pid': 1, // person who wrote a message
'msg' : 'tafasd' //message
},
....
{
'mid' : ...// id of a message
'pid': 1, // person who wrote a message
'msg' : 'tafasd' //message
}
]
}
このアプローチにはいくつかの利点があります。大きなデータベースでは、特定の会話のメッセージを簡単に見つけることができます。- 会話に人を簡単に追加できます。
しかし、ここに解決策が見つからない問題があります。会話が長くなりすぎて(スカイプを例にとります)、すべての会話が表示されず、一部が表示され、その後表示されます追加のメッセージ。他の状況では、スキップ、制限によってケースが解決されますが、ここでこれを行うにはどうすればよいですか?
これが不可能な場合、どのような提案がありますか?