2014-02-20 78 views
0

我有一個名爲消息的mysql表。它的結構如下消息表,不顯示消息誰刪除

id | sender_id | receiver_id | message | date | is_receiver_read | conversation_id 

1 | 99  | 456   | hello | 2014 | 1    | 99x456 

2 | 456  | 99   | hi)  | 2014 | 0    | 99x456 

當發送者或接收者刪除對話中的消息時,我不想向他顯示來自此對話的消息。怎麼辦?

當我添加名爲'is_sender_delete'和'is_receiver_delete'的列時出現問題。對於第一個消息發件人是99,但對於第二個消息發件人是456.當我更新我的表後,用戶按'刪除converstaion按鈕'哪一列我應該更新?

如果這種結構是錯誤的,那麼替代解決方案是什麼?

+0

還能有兩個以上當事人的談話? – Strawberry

+0

我不理解你?你的意思是兩方? – hakiko

+0

這表明答案是否定的。因此,只需要一個名爲'blacklist'的單獨表格,並將'deleted'conversation_id和user_id存儲在那裏...或者...具有一個稱爲訂閱的表格並存儲每個用戶以及它們在其中訂閱的每個對話! – Strawberry

回答

0

我認爲你需要像這樣...

CREATE TABLE subscriptions 
(user_id INT NOT NULL 
,conversation_id INT NOT NULL 
,subscribed TINYINT NOT NULL DEFAULT 1 
,PRIMARY KEY(user_id,conversation_id) 
);