【问题标题】:Message Table, Don't show messages to who deleted消息表,不向删除者显示消息
【发布时间】:2014-03-21 04:26:57
【问题描述】:

我有一个名为 messages 的 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。当我在用户按下“删除会话按钮”后更新我的表时,我应该更新哪一列?

如果这个结构是错误的,有什么替代解决方案?

【问题讨论】:

  • 一次对话可以有两个以上的参与方吗?
  • 我听不懂你的意思?你的意思是两方?
  • 这表明答案是否定的。因此,只需有一个名为“黑名单”的单独表,并将“已删除”的会话 ID 和用户 ID 存储在那里......或者......有一个名为订阅的表,并将每个用户和他们订阅的每个会话存储在那里!

标签: mysql sql messaging sendmessage


【解决方案1】:

我认为你需要这样的东西......

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)
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2020-10-16
    • 2018-06-29
    • 2019-09-29
    • 2011-05-04
    • 1970-01-01
    相关资源
    最近更新 更多