@entermix

Можно ли так проектировать таблицу БД?

Есть список email для рассылки, все работает примерно так: пользователь добавляет новость/заказ и т.д.,нужно уведомить об этом других пользователей на сайте, если эти пользователи оффлайн, письма отправляются без задержки, но если онлайн, происходит задержка (например 3 минуты), если пользователь за 3 минуты не прочитал событие на сайте, ему отправляется письмо на почту, иначе письмо удаляется из списка

Можно было бы сделать так:
news
id, name, author_id, text, email_id

orders
id, name, author_id, supplier_id, email_id

emails:
id, author_id, recipient_id, subject, text, time_to_send, created

Но 1 заказ/ новость может иметь несколько писем (например для новостей, это все подписчики автора)

Правильно ли будет, если сделать в таблице emails поля order_id, news_id и т.д.?

id, author_id, recipient_id, order_id, news_id, subject, text, time_to_send, created

Как в таком случае лучше поступить?
  • Вопрос задан
  • 521 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если проводить строгую нормализацию, то должна быть таблица писем (id, author_id, subject, text, created), таблица рассылки (letter_id, recipient_id, time_to_send). Если связи письма<->новости и письма<->заказы идут как многие-ко-многим, то две таблицы связи (letter_id, news_id) и (letter_id, order_id), если нет, то поля news_id и order_id тоже в таблице писем. А дальше надо смотреть, нужна ли денормализация и в каких пределах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы