Задать вопрос
nepster-web
@nepster-web

Дата или логический тип?

Есть задача, к примеру пользователь покупает услугу на определенное время. Например на день может выделить объявление ярким цветом.

У нас есть множество вариантов решения данной задачи. Однако спор с моим коллегой остановился на 2 вариантах. Весь вопрос заключается как лучше всего сделать выборку к примеру всех выделенных объявлений или узнать, выделено ли вообще объявление.

Вариант 1:
У нас есть 2 таблицы, 1 таблица истории покупок услуг и 2 таблица самих объявлений.
Когда пользователь покупает услугу (выделяет объявление), мы создаем запись в таблице истории и в таблице объявлений помечаем поле selected = 1. И в дальнейшем у нас выполняется скрипт по cron, который проверяет историю покупок и исходя из даты меняет значение selected.

Вариант 2:
У нас есть 2 таблицы, 1 таблица истории покупок услуг и 2 таблица самих объявлений.
Когда пользователь покупает услугу (выделяет объявление), мы создаем запись в таблице истории и в таблице объявлений записываем дату, до которого будет действовать выделение, например selected_time = 2015-08-20 00:00:00.

В первом случае выборка будет WHERE selected =1,
а во втором случае: WHERE selected_time > текущей даты.

Собственно какой из предложенных вариантов будет более практичнее ?

Помогите пожалуйста дельным советом решить спор.
  • Вопрос задан
  • 150 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
Второй, однозначно.

И selected_time можно вынести в отдельную от объявлений таблицу, что я и сделал бы.
У вас такие сущности:
- Оплата выделения объявления на N дней\часов\секунд. Это лог оплат\действий
- Само выделение определенного объявления. Это таймер для объявлений, содержит метки времени со связью
- И сами объявления отдельно
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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