2016-02-16 71 views
2

我有3代表为不同类型的用户..群聊数据库设计

Admin - Admin_id, Admin_name 
User - User_id, User_Name 
Employer - Emp_Id, Emp_Name.. 

现在我想有他们之间的所有群聊数据库设计。 我如何可以获取来自以下消息: 在1组只能有1个用户,1名雇主和1名管理员

目前我有1对1个聊天设计,这是如下:

Id, message, from_user, to_user, from_usertype, to_usertype, datetime 

任何人都可以帮忙吗?

回答

0

我会去与这样的设计:

tblChats 
-------- 
ChatId 
AdminId 
UserId 
EmployerId 

tblMessages 
----------- 
MessageId 
ChatId 
From (enum - admin/user/employer) 
To (enum - admin/user/employer) 
Content 
DateSent 
+0

但实际上我已经在不同的表3种不同类型的用户。所以我们怎么能考虑并为现场的tblMessages表..想象吗?用户已经为特定的组发送了消息...因此,使用此数据库设计,我们如何在用户,雇主和管理员端存储和检索相同的消息? –

+0

tblMessages与tblChats相关。在tblChats中,您拥有管理员ID,用户ID和雇主ID,因此在tblMessages中,您需要保存一个值,以指示消息与“从”列中的哪一列相关的值。无需为每个用户保存消息,只需保存一次即可。 –