Учусь делать самую простую систему сообщений, между двумя пользователями, где на сообщение можно ответить только 1 раз и это сообщение и ответ, видны у обоих пользователей.
Вот в чём вопрос: если 1 пользователь хочет удалить какое-нибудь сообщение из своего списка всех сообщений и если он его удалит, то оно пропадёт из БД и тогда у другого пользователя оно из списка тоже исчезнет.
Может в таком случае, сначала записать в бд, в какую-нибудь строку этого сообщения, то что 1 пользователь уже не хочет его отображать и записать цифру 1 и потом проверять, если эта цифра есть, то этому пользователю такое сообщение не выводить и когда уже второй пользователь захочет его удалить, то ещё в одну строку записывается цифра 1 и потом уже сравнивается, если цифра 1 есть в обеих строках, то удалить его из базы?
Когда-нибудь вы захотите дать поговорить более чем двоим пользователям, поэтому колонки плодить не получится.
Можно реализовать, например, вот так:
User(id, ...)
Thread(id, title, ...) // разговор
UserThread(user_id, thread_id) // участники разговора
Message(id, author_id, thread_id, text, ...) // сообщения
UserMessage(user_id, message_id) // что видит пользователь
Удаляете только связку пользователя с сообщением, оригинальные сообщения оставляете даже если его больше никто не видит, пригодятся.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости