Esquema relacional para expressões temporais de Fowler

Martin Fowler define um modelo de objeto elegante para o agendamento de tarefas recorrentesaqui, que mapeia muito bem o código OO. Mapear isso para um esquema de banco de dados relacional para persistência, no entanto, é complicado.

Alguém pode sugerir uma combinação de esquema + SQL que encapsule toda a funcionalidade que ele descreve, principalmente na imagem na página 11. Interseções e uniões são bastante óbvias - a complexidade está em representar as 'Expressões temporais', que recebem parâmetros variáveis e devem ser interpretadas de forma diferente e, em seguida, combiná-las em um 'Conjunto Temporal'.

Para ser claro, existem muitas maneiras de representar o conceito de eventos recorrentes em bancos de dados relacionais. O que eu gostaria da opinião de todos é como mapear esse modelo específico.

Algumas opções possíveis:

Tabelas 'Meta' que definem o número e o uso de argumentos. Feio, mas provavelmente funciona. No entanto, é provável que exista apenas um número limitado de formulários de 'Expressão temporal'; portanto, a extrema flexibilidade que isso oferece é provavelmente muito grande.Alguma forma de herança de tabela, conforme suportada pelo RBMS do Postgres (e presumivelmente, outro).

Serializar a lista de parâmetros e armazenar o resultado em um varchar () não é uma solução, pois esse método impede consultas baseadas em conjuntos :)

questionAnswers(2)

yourAnswerToTheQuestion