Шаблон бесконечного календаря SQL

Я собираюсь создать календарную систему на основе Mysql, где вы можете иметь повторяющийся шаблон, скажем, каждый понедельник навсегда.Он также должен охватывать статические/однократные события. Что меня интересует, так это то, какое решение было бы наиболее логичным (и лучшим) для меня. У меня есть четыре метода, которые мне интересно выбрать между ними.

Метод №1

Создайте функцию, которая принимает параметры от и от до . Эта функция создаст временную таблицу, которая импортирует существующее статическое расписание через INSERT ... SELECT. После этого он будет считывать таблицу шаблонов и заполнять временную таблицу через пероид на основе fromи to.

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

Способ #2

Создание и объединение заданных шаблонов с помощью подзапроса и JOINсо статическим календарем.

Это кажется довольно раздражающим, так как запросы будут намного больше и, вероятно, вообще не будут хорошими (?).

Способ #3

В основном просто шаблон INSERTдля, скажем, на год вперед. Тогда я думаю, что задание cron будет повторно заполняться, чтобы всегда делать его на год вперед.

Это простой способ сделать это, но кажется, что хранится много ненужных данных, и это на самом деле не дает той бесконечности, к которой я стремлюсь.

Метод №4 (предложен Veger)

Если я правильно понимаю, этот метод извлекает шаблон из другого запроса и создает события при выполнении.Это похоже на мои мысли о методе № 1 в том смысле, что я рассматриваю простой шаблон для создания нескольких строк.

Однако, если бы это было реализовано вне Mysql, я бы потерял некоторые функции базы данных, которые мне нужны.


Надеюсь, вы, ребята, поняли мою ситуацию, и не могли бы вы предложить либо данное и аргументировать, почему это лучшее, либо дать другое решение.

Лично мне больше всего нравится метод №1, но мне любопытно, не запаздывает ли повторное заполнение таблицы календаря при каждом вызове.

33
задан hakre 27 December 2012 в 12:12
поделиться