Подскажите правильную структуру почты

taster

Новичок
Хочу реализовать внутреннюю почту у себя на сайте. Но не могу представить структуру таблицы.
Думаю примерно так:
`id` - ID сообщения
`from` - кто отправил
`to` - кому отправили
`time` - время отправления
`text` - текст

Но как потом вывести все сообщения с пользователем? И как вывести всех пользователей, с которыми я общался?
 

Gas

может по одной?
Лично мне такая структура не нравится, я бы сделал 2 таблицы - одна с текстами сообщений, а вторую с пользователями. Это позволит в получателях быть более одного человека, не нужно костыльных запросов с проверкой на from or to, при добавлении аттрибутов пользовательских не нужно заводить по 2 поля from_attr, to_attr, например просмотрел пользователь сообщение или нет.
 

С.

Продвинутый новичок
Gas, не грузи человека, перед ним пока более простые проблемы стоят.


taster, нормальная структура, имеющая право быть. Выводить просто: (кому=я или откого=я)
 

taster

Новичок
Лично мне такая структура не нравится, я бы сделал 2 таблицы - одна с текстами сообщений, а вторую с пользователями. Это позволит в получателях быть более одного человека, не нужно костыльных запросов с проверкой на from or to, при добавлении аттрибутов пользовательских не нужно заводить по 2 поля from_attr, to_attr, например просмотрел пользователь сообщение или нет.
А можно подробнее? Какая будет структура у этих таблиц? Какую они будут иметь связь?
 

Gas

может по одной?
Минимум так
mails:
id,
text

mails_users
id,
id_user,
id_mail,
is_sender,
date_add

Поле date_add осознанно вынесено в таблицу mails_users, чтоб при сортировках по дате (а они всегда будут) не нужно было джойнить таблицу с сообщениями и избежать считывания лишних данных при лимитах, проведения filesort на диске из-за поля text. Но если забить на дату и сортировать по id, тогда стоит вынести дату mails.
 

AmdY

Пью пиво
Команда форума
Gas
я нуб в базах данных, но мне казалось что блобы и им подобные и так хранятся отдельно и тянутся лишь при выборке?

по поводу именования, с чего используешь префиксы? я подобное юзал для форм, которые по префиксу тип поля определяли и в ORM чтобы связи не прописывать, может ещё есть юскейсы или практики?
 
Сверху