Я собираюсь создать систему календаря на основе Mysql, где вы можете повторить шаблон, который позволяет говорить каждый понедельник навсегда и всегда. Он также должен охватывать статические/одноразовые события. Мне интересно, какое решение было бы наиболее логичным (и лучшим) для меня. У меня есть четыре метода, которые мне интересно выбрать между.
Метод # 1
Сделайте функцию, которая принимает параметры from
и to
. Эта функция создаст временную таблицу таблицы, которая импортирует существующее статическое расписание через INSERT ... SELECT
. После этого он будет читать таблицу шаблонов и заполнять временную таблицу через пероиду на основе from
и to
.
Это решение кажется приятным с точки зрения того, что запросы будут проще для сбора данных, и он будет работать бесконечно, поскольку вы можете просто повторно заполнить таблицу в зависимости от того, какой месяц вы загружаете. Мне любопытно, когда это может быть медленным способом сделать это или нет.
Метод # 2
Создайте и соедините данные шаблоны через подзапрос и JOIN
со статическим календарем.
Это кажется довольно раздражающим, поскольку запросы будут намного больше и, вероятно, не будут хорошими вообще (?).
Метод № 3
В основном просто шаблон INSERT
позволяет говорить на один год вперед. Тогда я предполагаю, что работа cron будет заселена, чтобы сделать ее на год вперед всегда.
Это простой способ сделать это, но он чувствует, что много ненужных данных хранится, и это действительно не дает бесконечности, за которой я буду.
Метод # 4 (предложенный Вегером)
Если я правильно понимаю, этот метод будет извлекать шаблон из другого запроса и создавать события после выполнения. Это похоже на мои мысли относительно метода № 1 таким образом, что я считаю простой шаблон для создания нескольких строк.
Однако, если это будет реализовано вне Mysql, я потеряю некоторые функции базы данных, которые я буду после.
Надеюсь, вы, ребята, поняли мою ситуацию, и если бы вы могли предложить либо дать, либо аргументировать, почему это лучшее, или дать другое решение.
Лично мне нравится метод # 1 больше всего, но мне любопытно, если он будет отставать от записи таблицы календаря каждый раз.