Если вы действительно собираетесь поддерживать сложные графики всех этих типов, я не уверен, что это хорошая идея попытаться выработать столь же сложную реляционную схему БД для всех деталей этих графиков.
Я бы подумал о разработке схемы XML для деталей расписаний и, если вам действительно нужно хранить расписания в реляционной базе данных, сохраняя данные XML в столбце. Вы можете использовать столбцы для тех атрибутов расписаний, которые применимы к расписанию любого типа (например, имя графика или кто изменил его в последний раз и когда).
Например, если предположить, что график может быть использован для более чем одного доклада, вы могли бы сделать что-то вроде этого:
Table: Schedule
---------------
Columns:
ID - Surrogate key to refer to schedules
from other tables.
Name - Short textual description of the schedule
(to be shown in GUI).
...
Details - XML containing all the details of
the schedule (frequency, exceptions,
complex combinations of simple schedules,
whatsoever).
Даже если ваше приложение должно ответить на такие вопросы, как «то, что отчеты должны быть из-за заданной даты/времени », я думаю, что у вас должно быть действительно очень большое количество расписаний, чтобы оправдать накладные расходы на использование реляционной схемы для хранения подробных сведений о графике в отдельных столбцах (и, возможно, в нескольких таблицах).
Я ищу информацию о том, как работает логика хрон. – lamcro 2008-10-22 12:44:20