Ответы пользователя по тегу Проектирование баз данных
  • Проектирование системы сообщений (схемы базы данных)

    colonel
    @colonel Автор вопроса
    Разработчик PHP, Laravel
    Пока склоняюсь к такой схеме:

    table message:
    id | subject | body |… other… | user_id
    — здесь user_id — отправитель, он всегда один, в отличие от получателей

    table message_user_rel (связь сообщения с пользователями)
    id | message_id | type (входящее, исходящее) | trash (корзина)

    Но здесь тоже проблема:
    Если сообщение удалит получатель, то при выборке исходящих для отправителя невозможно определить, кто получатель (сообщение удалено)

    Как быть, два флага trash и deleted иметь у каждой связанной записи к сообщению (корзина, удален)
    но опять избыток всех этих флагов получается, и избыток данных в базе (реально нельзя удалять записи, а только помечать)
    Ответ написан
    Комментировать