Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблица событий. / 9 сообщений из 9, страница 1 из 1
19.07.2005, 13:03
    #33173303
vecalion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
День добрый,
имеется следующая задача: создать базу данных для хранения событий (праздники, концерты, кинопоказы, итд.). Для каждого событися будут определены даты начала и завершения (DATE), но проблема в том, что некоторые события могут иметь ТОЛЬКО дату начала (то есть теоретически дата завершения имеется, но никогда не определяется (этакие мгновенные события или события происходящие один день)).
В последствии надо будет производить различные операции с событиями: поиск по дате, сортировка (в том числе и по дате завершения).

Я вижу три решения:
1) Дату завершения оставлять пустой и учитывать это при составлении SELECT'ов (очевидный минус - очень громоздкие запросы)
2) Добавить поле флаг, которое будет отмечать используется ли дата завершения (по сути аналог (1), но чуть упростит запросы).
3) При добавлении событий, если не указана дата завершения - устанавливать ее равной дате начала

Склоняюсь к пункту (3), т.к. в этом случае проблема отсутствия даты завершения никаким образом не отражается на SELECT'ах. Возможно кто-то сталкивался с подобной проблемой и сможет посоветовать лучшее решение?
...
Рейтинг: 0 / 0
19.07.2005, 13:23
    #33173368
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
Я предпочитаю 3-й вариант, как вы и описали. Так работают многие органайзеры, навскидку -- органайзеры в Siemens'ах.
...
Рейтинг: 0 / 0
19.07.2005, 15:18
    #33173809
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
Для п.3 и заполнения Начало=Конец

А как быть, когда продолжительность в данный момент неизвестна ?
Например коммандировка...
У типов событий нужно оговорить краткосрочное оно или нет. Тогда можно проставить Начало=Конец. Иначе оставлять поле NULL или ставить специальную "заоблачную" дату, например 01-01-2075
...
Рейтинг: 0 / 0
19.07.2005, 15:36
    #33173875
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
Конечно, все зависит от решаемой задачи.
Но 3-й вариант мне кажется наиболее предпочтительным. Органайзер предполагает планирование -- даже для командировки надо приблизительно представлять сроки. Бессрочная командировка... брр-р 8-)
...
Рейтинг: 0 / 0
19.07.2005, 15:45
    #33173906
vecalion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
LSVДля п.3 и заполнения Начало=Конец

А как быть, когда продолжительность в данный момент неизвестна ?
Например коммандировка...
У типов событий нужно оговорить краткосрочное оно или нет. Тогда можно проставить Начало=Конец. Иначе оставлять поле NULL или ставить специальную "заоблачную" дату, например 01-01-2075

Если продолжительность неизвестна в данный момент, то дату завершения можно поставить когда будет известна продолжительность. Это вопрос интерфейса для ввода информации.

Если мы ставим заоблачную дату то это будет "вечное" событие, и для любого запроса о событиях в будущем мы будем видеть это событие...

В данный момент передо мной цель придумать такой способ хранения, чтобы максимально просто получать необходимую информацию (если NULL, заоблачная даты или какой-то флаг, то при запросах нужны будут проверки)
...
Рейтинг: 0 / 0
19.07.2005, 17:23
    #33174211
Kezya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
Кто-то на форуме предлагал для документов сделать флаги: заполнен полностью, не заполнен и т.д.
Может, и для событий подойдет: завершено, длится, не завершено, не начато..
Что-то типа этого
...
Рейтинг: 0 / 0
19.07.2005, 19:57
    #33174602
PVP
PVP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
vecalionВ данный момент передо мной цель придумать такой способ хранения, чтобы максимально просто получать необходимую информацию (если NULL, заоблачная даты или какой-то флаг, то при запросах нужны будут проверки)
В общем то, значение NULL - это тоже кокретное значение. Оно несет однозначную информацию о том, что у события нет даты завершения. И если такое состояние надо отличать в запросах, то зачем еще дополнительные флаги.

Вариант "Бесконечно большое значение даты завершения" исключает возможность выбора собитий без даты завершения. Это хорошое решение для использования в условиях between DateN and Datek. Что, с другой стороны, равно between DateN and isnull(Datek,01-01-20075)

И еще. А в чем проблема с запросами? В том что бы дописать в условие or DateEnd is null" ? На время выборки это не повлияет. На время составления программ - то же. Может объясните, откуда задача образовалась?
...
Рейтинг: 0 / 0
20.07.2005, 10:59
    #33175207
vecalion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
PVPИ еще. А в чем проблема с запросами? В том что бы дописать в условие or DateEnd is null" ? На время выборки это не повлияет. На время составления программ - то же. Может объясните, откуда задача образовалась?
Как будет выглядеть в таком случае запрос на выборку событий которые происходят на следующей неделе и сортировку результата по дате завершения (если нет даты завершения, то используется дата начала)? То есть НачалоСобытия < КонецНедели И ЗавершениеСобытия > НачалоНедели, Сортировать По ЗавершениеСобития. Подставлять везде isnull(DateEnd,DateBegin)? Не замедлит ли это запрос (если учесть, что в запросе учавствуют еще объекты, в которых проходят события, категории событий)?
...
Рейтинг: 0 / 0
12.08.2005, 03:13
    #33211856
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица событий.
vecalionЯ вижу три решения:
...

4) При добавлении событий, если не указана дата завершения - устанавливать ее равной очень далеко отстоящей дате в будущем - типа "вечности". Запросы будут писаться на "ура".
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблица событий. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]