簡體   English   中英

如何實現mySQL自相關?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM