Монитор запланированного отчета (задачи) - PullRequest
0 голосов
/ 22 октября 2008

Мне нужно разработать систему для мониторинга генерации / передачи отчетов.

  • Системные данные будут храниться в таблицах базы данных (Sybase)
  • Отчеты будут создаваться с разными расписаниями («пн-пт 10 вечера», «суббота 5 утра», «1-й день месяца» и т.
  • Система будет просто следить за тем, чтобы отчеты были созданы. Он не будет создавать отчеты самостоятельно.
  • Система уведомит соответствующий персонал, когда отчет не завершен.
  • Система будет вести журнал всех сгенерированных отчетов

Кто-нибудь знает хороший (проверенный и проверенный) дизайн таблиц для хранения расписаний задач? У меня уже есть идея, но я не хочу изобретать велосипед.

Ответы [ 2 ]

1 голос
/ 21 ноября 2008

Вы можете создать таблицу расписание со столбцами

  • ID
  • имя
  • пн, вт, ср, чт, пт, сб, вс
  • день
  • месяц
  • год
  • время (ч * 60 + м)

ваши примеры будут:

пн-пт 10 вечера

mon, tue, wed, thu, fri = true, time=22*60, the rest are NULL

суббота 5 утра

sat=true, time=5*60, the rest are NULL

1-й день месяца

day=1, the rest are NULL

Вы также можете иметь таблицу отчетов со столбцами

  • ID
  • имя
  • schedule_id

и таблица report__schedule ___ позднее со столбцами:

  • ID
  • date_time
  • REPORT_ID
1 голос
/ 19 ноября 2008

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

Я хотел бы рассмотреть вопрос о разработке схемы 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).

Даже если ваше приложение должно отвечать на такие вопросы, как «какие отчеты должны быть представлены к определенной дате / времени», я думаю, у вас должно быть действительно очень большое количество расписаний, чтобы оправдать накладные расходы на использование реляционной схемы для хранения подробные сведения о расписании в отдельных столбцах (и, возможно, в нескольких таблицах).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...