График видимости

0

Я хочу иметь простую таблицу базы данных, чтобы отслеживать видимость запланированной категории в индексе сайта. В основном он будет указывать индексу, чтобы показать рождественскую категорию между Днем Благодарения и Рождеством.

До сих пор я подумываю использовать таблицу, подобную этой,

schedule_id SMALLINT,

start_date TIMESTAMP,

end_date TIMESTAMP,

category_id SMALLINT,

annual BOOL

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

Моя проблема связана с моим годовым флагом. В принципе, я думаю, что раз в день база данных может обновлять таблицу и добавлять один год в любую строку, где end_date < теперь и годовое значение истинно, в противном случае удалите строку, если она истекла.

Я беспокоюсь, что високосные годы или что-то может компенсировать перенесенную дату.

Я на правильном пути здесь?

Есть ли лучший способ сделать это?

Теги:
scheduling

1 ответ

1
Лучший ответ

Если вы добавите один год, а не (скажем) 365 дней, вам не нужно будет беспокоиться о выпуске високосного года.

 ADDDATE( date, INTERVAL 1 YEAR )

Добавление 1 года к дате високосного дня будет вам 28 февраля на следующий год

2008-02-29 -> 2009-02-28

Вы можете рассмотреть возможность разбить свои расписания из своих категорий и иметь таблицу соединений, связывающую категории с расписаниями. Тогда, если вы хотите разделить расписание между категориями, это немного проще. И потенциально вы можете использовать расписания в другом месте, добавив другие таблицы соединений.

Последнее предложение, вместо того, чтобы иметь поле annual, имеет поле с нулевым значением для указания периодичности: еженедельно, ежемесячно и т.д., снова дает вам более гибкую модель расписания.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню