如何为聊天功能创建数据库设计?

时间:2013-07-25 03:22:35

标签: database-design chat

我们需要在基于spring MVC的网络应用中创建聊天功能。

将有两种聊天一对一聊天和群聊。

对于群聊,我提出了以下架构。

Table = group_chat 

User_id, message, message_on (datetime), group_id

我不确定这是一对一聊天。

一对一聊天可能发生在群组外或两个群组成员之间的群组内。

请帮忙

1 个答案:

答案 0 :(得分:5)

由于我们对您的架构或要求一无所知,您的问题有点开放。但是,对于基本上相同类型的数据而言,拥有两个单独的表看起来像是代码味道。我可能会从这样的结构开始,并根据它的执行情况迭代它。

USERS
user_id
username
password

GROUP
group_id
name

GROUP_MEMBERS
group_id
user_id

MESSAGE
message_id
timestamp
from_user_id
destination_type (enum - group, user)
destination_id

您对聊天功能所做的任何添加都会自动传播到点对点和群聊。当然,这也要求您的代码遵循将两​​种类型的聊天组合到相同类中的相同原则。