我需要创建一个信息系统,使一个人可以与多个用户进行对话。例如,我开始与user2、user3和user4交谈,所以他们中的任何一个人都可以看到整个对话,如果在任何时候对话不是私密的,任何参与者都可以添加其他人到对话中。
这是我的实现思路。我使用Mongo,并且我的想法是将对话作为实例而不是消息。
下面是该方案的架构:
我能看出这种方法的一些优点: - 在大型数据库中,可以很容易地找到某个特定对话的消息。 - 可以轻松地将人添加到对话中。
但是这里有一个问题,我找不到解决方法: 对话变得太长了(以 Skype 为例),他们并没有向您显示所有对话,而是先显示部分对话,然后再显示其他消息。 在其他情况下,跳过、限制可以解决问题,但是在这里该怎么做呢?
如果这是不可能实现的,你有什么建议?
这是我的实现思路。我使用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 为例),他们并没有向您显示所有对话,而是先显示部分对话,然后再显示其他消息。 在其他情况下,跳过、限制可以解决问题,但是在这里该怎么做呢?
如果这是不可能实现的,你有什么建议?