我需要创建一个消息系统,一个人可以在其中与许多用户进行对话。例如,我开始与 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
}
]
}
我可以看到这种方法的一些优点——在一个大数据库中,很容易找到一些特定对话的消息。- 很容易将人添加到对话中。
但这里有一个问题,我找不到解决方案:对话变得太长(以Skype为例)并且他们没有向您展示所有对话,他们向您展示了一部分,然后他们展示了你额外的消息。在其他情况下跳过,限制解决了这种情况,但我该怎么做呢?
如果这是不可能的,你有什么建议?