對不起一個消息「系統」,我有一個擔憂:創建的DB(最特別的MySQL)
我有一個表successully在MySQL創建:
CREATE TABLE IF NOT EXISTS MESSAGE
(
MESSAGE_ID BIGINT NOT NULL AUTO_INCREMENT
,AUTHOR_ID VARCHAR(30) NOT NULL
,TITLE VARCHAR(100) NOT NULL
,MESSAGE VARCHAR(4095) NOT NULL
,UNREAD_FLAG BOOLEAN NOT NULL DEFAULT TRUE
,CREATION_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP
,DATE_LAST_MODIFIED TIMESTAMP NULL
,PRIMARY KEY (MESSAGE_ID)
,FOREIGN KEY (AUTHOR_ID) REFERENCES USER (USR_ID)
);
正如你所看到的,有由於1個或多個收件人可以收到相同郵件的原因,沒有提及誰收到郵件。
1)如何實現消息線程「模型」,以便如果有消息發送給多個用戶,則收件人可以回覆消息並跟蹤收件人回覆的消息?例如。我向5位朋友發送了關於派對的消息,他們都回復了,我將如何保留對原始消息的回覆消息鏈接的記錄?此外,收件人還可以響應已回覆的消息,創建對已回覆消息的響應,因此最終它將是一個類似響應消息結構的樹。
2)如何創建一個表讓一個以上的收件人收到相同的信息?我有一個想法,創建一個與recipient_id(引用用戶表)和message_id(消息ID)對的表。這是否有效?我問的原因是,如果200人收到相同的消息,那麼將有200個user_id表,message_id對錶...
再次感謝和平!
P.S.我已經實現了2號),所以我想這不會是一個問題。
對於2號,我確實已經......謝謝..我更擔心的是問題1.請注意,我已經重新更新了這個問題。 – 2010-01-21 19:29:28
我只需在消息表中添加另一列來跟蹤response_to_id,這將是一個返回給message_id的外鍵,但可以爲null。如果有人對消息#123作出響應,則他們的新消息將其response_to_id設置爲123.您可以以這種方式跟蹤鏈接,以響應響應等等。 – eliah 2010-01-21 19:35:52
好的,會不會允許空外鍵?這是否使我的表正常化? – 2010-01-21 19:46:10