如何Message
在 mySQL 中创建这样的表来存储消息及其响应?
问问题
4964 次
2 回答
7
你可以试试这个:
create table messages (
message_id int primary key,
response_to int null references messages(message_id), -- self relationship
user_from int not null references users(user_id),
user_to int not null references users(user_id),
content varchar(200) not null
);
第一条消息将有一个null
值 unresponse_to
字段。
附带说明一下,如果您打算存储“对话”而不是“消息”,请考虑使用带有 CLOB(字符大对象)的普通表来存储对话的 JSON 或 XML 表示。它将加快您的查询速度(如果您总是计划一次阅读整个对话而不是单个消息)。
于 2013-03-25T10:23:07.143 回答
1
您可以创建一个引用原始 messageId 的 foreign_key,但不要忘记允许 null 值,因为原始消息不会设置此键。
但是拥有一个线程表不是更好的方法,然后在消息表中保存 threadId 以便您可以匹配哪些消息属于哪个线程,发布时间可能是识别响应消息的一个很好的指标。
于 2013-03-25T10:23:35.680 回答