如何在mySQL中创建一个Message
表来存储消息及其响应?
答案 0 :(得分:6)
你可以试试这个:
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
值为response_to
字段。
作为旁注,如果您计划存储“对话”而不是“消息”,请考虑使用带有CLOB(字符大对象)的普通表来存储对话的JSON或XML表示。它会加快您的查询速度(如果您总是计划一次阅读整个会话而不是单个消息)。
答案 1 :(得分:1)
您可以创建一个引用原始messageId的foreign_key,但不要忘记允许空值,因为原始消息不会设置此密钥。
但这不是一个更好的方法来拥有一个线程表,然后在messages表中保存threadId以便你可以匹配哪些消息属于哪个线程,发布时间可以是识别响应消息的一个很好的指标