我正在创建一个系统,其中我计划让用户A生成一个特殊的聊天链接,以便他/她可以与用户B通信。这是一个1-1聊天模型。我的模型的架构如下。我需要知道它是否实用,或者它是否可以改进。
table messages
chatid; {fk}
message_id; {pk}
timestamp;
sender;
table chat
chatid; {pk}
userA;
userB;
timestamp;下面是场景的控制流:
H 112用户A和用户B商定了他们希望聊天的时间<代码>H 213/code>G 214
我知道,有点奇怪,因为我不知道如何实现一个系统,在这个系统中,用户可以在线/离线进行检查,不过如果你有想法的话,你可能会突然出现。
结束了。等待你的回应。
由Asker编辑
我在看这个模式。我不知道如何进一步添加以显示用户a/user b处于联机/离线状态;也许是last_activity?你说了算。
tbl_chat
-------------
chat_id (pk)
user_id_a (fk)
user_id_b (fk)
timestamp
tinyint;
tbl_msg
-------------
message_id (pk)
chat_id (fk)
user_id_sender (fk)
message_body
timestamp在tbl_chat中添加tinyint,所以当用户A单击杀死chat时,它使其成为1,缺省值为tinyint =0;这样就会终止聊天。
发布于 2012-03-09 12:21:08
为了能够将聊天扩展到两个以上的用户,并且不必在查询中同时检查chat.userA和chat.userB,我不会在聊天表中使用userA和userB。相反,我会添加一个表(例如chat_users),它有用户名/ids(无论您在userA和userB中放什么)和一个chatid。除此之外,我要说的是,信息需要一个身体。
table messages
chatid; {fk}
message_id; {pk}
timestamp;
userid; {fk}
body;
table chat
chatid; {pk}
timestamp;
table chat_user
userid; {fk}
chatid; {fk}https://stackoverflow.com/questions/9632058
复制相似问题