Мартин Фаулер определяет элегантную объектную модель для планирования повторяющихся задач здесь, которая очень хорошо отображает код OO. Однако сопоставление этого с реляционной схемой базы данных для настойчивости является сложным.
Может ли кто-нибудь предложить комбинацию схемы + SQL, которая инкапсулирует все функциональные возможности, которые он описывает, особенно в изображении на стр. 11. Интерсекции и союзы довольно очевидны - сложность заключается в представлении "временных выражений", которые принимают переменные параметры и должны интерпретироваться по-разному, а затем объединять их с "временным набором".
Чтобы быть ясным, существует множество способов представления концепции повторяющихся событий в реляционных базах данных. Что бы я хотел, чтобы каждый вводил информацию о том, как сопоставить эту конкретную модель.
Некоторые возможные варианты:
- Таблицы Meta, которые определяют количество и использование аргументов. Уродливо, но, вероятно, работает. Тем не менее, существует только ограниченное количество форм "Временного выражения", поэтому экстремальная гибкость этого предложения, вероятно, слишком велика.
- Некоторая форма наследования таблиц, поддерживаемая Postgres (и предположительно другим) RBMS.
Сериализация списка параметров и сохранение результата в varchar() не является решением, поскольку этот метод предотвращает запросы на основе набора:)