Робота з базою даних: щоденне повідомлення для кожного користувача
Припустимо, є якийсь веб-застосунок (PHP & MySQL), в якому потрібно додати новий функціонал. Кожного дня, коли користувач вперше відкриває url застосунку, йому повинно відобразитися спеціальне повідомлення. Нехай це буде передбачення, як у чеках Сільпо. Усього таких повідомлень 300. Кожного дня потрібно виводити нове повідомлення, тобто вони не повинні повторюватися. Як повинна виглядати база даних у цьому випадку?
Мій варіант:
— таблиця wishes, у котрій будуть повідомлення
— таблиця user_wishes, у котрій будуть поля user_id та wish_id для зв’язку між користувачем та відправленим повідомленням
— у таблиці users додати поле wished_at для оновлення часу останнього відправлення повідомлення
Що мені не до вподоби у такому варіанті:
— під час кожного запиту додасться перевірка поля wished_at та порівняння його з поточною датою, що якось тупо
— якщо активних користувачів багато, а повідомлень не 300 а 3000, то протягом року таблиця user_wishes стане занадто великою, вибірка стане повільнішою (мені так здається)
— під час вибору яке саме передбачення відправити, потрібно отримати id вже відправлених та зробити вибірку із усіх існуючих крім вже відісланих, це також таке собі рішення, не подобається
Можливо є якісь книги, статті або відео-курси с прикладами проектування БД? Тольки не рівня «let’s make database for our blog» а щось нормальне.
PS. Переписав солов’їною. Питання суто теоретичне. Хочу розібратися з проектуванням БД під різні задачі, от вигадую собі невелики завдання, та намагаюся їх обміркувати. Як ви помітили, поки не дуже виходить.
28 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів