[英]How to implement mySQL self-relationship?
如何在mySQL中創建一個像這樣的Message
表,在其中存儲消息及其響應?
您可以嘗試以下方法:
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
值un response_to
字段。
附帶說明一下,如果您打算存儲“對話”而不是“消息”,請考慮使用帶有CLOB(字符大對象)的普通表來存儲對話的JSON或XML表示形式。 它將加快您的查詢速度(如果您始終打算一次閱讀整個對話而不是單個消息)。
您可以創建一個引用原始messageId的foreign_key,但不要忘記允許使用空值,因為原始消息將沒有設置此密鑰。
但是擁有線程表,然后在消息表中保存threadId並不是更好的方法,這樣您就可以匹配哪些消息屬於哪個線程,發布時間可能是識別響應消息的好指標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.