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

ash*_*ram 1 database-design chat

我们需要在基于spring MVC的Web应用程序中创建聊天功能.

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

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

Table = group_chat 

User_id, message, message_on (datetime), group_id
Run Code Online (Sandbox Code Playgroud)

我不确定一对一聊天.

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

请帮忙

Pra*_*dhi 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
Run Code Online (Sandbox Code Playgroud)

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