Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите как реализовать использование истории данных / 14 сообщений из 14, страница 1 из 1
14.05.2010, 14:51
    #36628347
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
Есть таблица
pkidnamevt_beginvt_end
Прочел книгу по истории данных - Developing Time-Oriented Database Application in SQL.
Там в общем и целом понял картину, но не совсем понимаю как фактически в приложении применять эту структуру.

Т.е. в клиенте к примеру мы отображаем поля
name - Некие данные
vt_begin - Начало действия этих данных
vt_end - Окончание действия этих данных

Пример:
pkidnamevt_beginvt_end1111101.01.201001.01.201121111-201.01.201101.01.201231111-301.01.201201.01.2013

Теперь мы решили что запись с pk=2 мы ввели не верно, как поступать в этой ситуации? Фактически id=1 должен иметь какое то значите на всем интервале с 2010 по 2013 год.
То ли увеличивать первый интервал, то ли последний.
Кто как делал или что подскажет?
...
Рейтинг: 0 / 0
14.05.2010, 14:54
    #36628365
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийФактически id=1 должен иметь какое то значите на всем интервале с 2010 по 2013 год.


зачем ? достаточно брать последний наиболее близкий к искомой дате... фиксировать только изменения и достаточно даты изменения... значение актуально пока не будет новой записи с датой изменения
...
Рейтинг: 0 / 0
14.05.2010, 14:59
    #36628394
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
Здесь даты не дата актуальности вводимых данных, а даты действия в реальном мире так сказать, т.е. в 2010 действует одно значение справочника, в 2011 другое, в 2012 третье.
...
Рейтинг: 0 / 0
14.05.2010, 15:07
    #36628438
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийПример:
pkidnamevt_beginvt_end1111101.01.201001.01.201121111-201.01.201101.01.201231111-301.01.201201.01.2013ИМХО, Вы не правильно поняли книгу. В данном случае все значения столбец pk не нужен. А первичным ключом будет комбинация (id, vt_end).ДумающийТо ли увеличивать первый интервал, то ли последний.
Кто как делал или что подскажет?Я думаю надо предоставить на выбор пользователю. А еще лучше исправление нештатных ситуаций доверять не пользователю, а только админу.
...
Рейтинг: 0 / 0
14.05.2010, 15:12
    #36628460
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
Senya_LИМХО, Вы не правильно поняли книгу. В данном случае все значения столбец pk не нужен. А первичным ключом будет комбинация (id, vt_end)

Может быть и не правльно, только, я не совсем понимаю как я буду связывть таблицы по id +vt_end, с учетом того что vt_end может изменится в любой момент.
Senya_L
Я думаю надо предоставить на выбор пользователю. А еще лучше исправление нештатных ситуаций доверять не пользователю, а только админу.
Ну я бы не сказал что это не штатная ситуация, по моему не верный ввод штатная ситуация.
Ну вообще с выбором пользователя, как вариант, думаю возможно.
...
Рейтинг: 0 / 0
14.05.2010, 15:22
    #36628517
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийSenya_LИМХО, Вы не правильно поняли книгу. В данном случае все значения столбец pk не нужен. А первичным ключом будет комбинация (id, vt_end)

Может быть и не правльно, только, я не совсем понимаю как я буду связывть таблицы по id +vt_end, с учетом того что vt_end может изменится в любой момент.Меня тоже этот момент смущает. Я как-то привык, что изменение PK - неудачная мысль. А реализовать технически очень просто - составной внешний ключ + on update cascade.
...
Рейтинг: 0 / 0
14.05.2010, 15:32
    #36628554
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
Я опустил этот момент, но в таблице также есть и время действия записи по вводу, т.е. еще tt_begin + tt_end, бюсь, что если все же связывать как вы предлагаете, во первых будет слишком не удобно писать запросы, во вторых и обработка связей будет увеличиваться.

Вообще конечно было бы посмотреть пример приложения которое работает с историей, чтобы понять как это выглядит. Если кто подкинет ссылку буду благодарен.
...
Рейтинг: 0 / 0
14.05.2010, 16:06
    #36628709
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийЯ опустил этот момент, но в таблице также есть и время действия записи по вводу, т.е. еще tt_begin + tt_end, бюсь, что если все же связывать как вы предлагаете, во первых будет слишком не удобно писать запросы, во вторых и обработка связей будет увеличиваться.С чего это "обработка связей будет увеличиваться". Я сомневаюсь, что Вы заметите разницу.
Я думаю вполне хватит ограничиться vt_begin и vt_end. tt_begin + tt_end - это из другого подхода. В принципе, думаю можно оставить и суррогатный ключ pk. И связывание будет проще.
ДумающийВообще конечно было бы посмотреть пример приложения которое работает с историей, чтобы понять как это выглядит. Если кто подкинет ссылку буду благодарен.Ссылок привести не могу, увы.
...
Рейтинг: 0 / 0
14.05.2010, 16:13
    #36628729
Думающий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
Дело в том что у меня оба подхода совмещаются)
Спасибо в любом случае
...
Рейтинг: 0 / 0
14.05.2010, 17:21
    #36629012
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
...
Рейтинг: 0 / 0
14.05.2010, 21:58
    #36629454
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийДело в том что у меня оба подхода совмещаются)
Спасибо в любом случаеРаз у Вас ник "Думающий", то подумайте. :)
За все надо платить. Это аксиома. Если Вы хотите "влегкую" поднимать данные с хронологией - готовьтесь платить за это пожелание. Если считаете цену слишком большой - ведите обычный лог.
...
Рейтинг: 0 / 0
18.05.2010, 11:31
    #36633669
Pavel Kurakin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
Можно еще здесь почитать.
...
Рейтинг: 0 / 0
18.05.2010, 14:10
    #36634080
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийПример:
pkidnamevt_beginvt_end1111101.01.201001.01.201121111-201.01.201101.01.201231111-301.01.201201.01.2013
Теперь мы решили что запись с pk=2 мы ввели не верно, как поступать в этой ситуации? Фактически id=1 должен иметь какое то значите на всем интервале с 2010 по 2013 год.
То ли увеличивать первый интервал, то ли последний.
Кто как делал или что подскажет?А как было до того, когда ввели запись с pk=2?
В такое же состояние и верните ваши данные.
...
Рейтинг: 0 / 0
18.05.2010, 14:26
    #36634128
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как реализовать использование истории данных
ДумающийSenya_LИМХО, Вы не правильно поняли книгу. В данном случае все значения столбец pk не нужен. А первичным ключом будет комбинация (id, vt_end)
Может быть и не правльно, только, я не совсем понимаю как я буду связывть таблицы по id +vt_end, с учетом того что vt_end может изменится в любой момент.Для такой схемы адекватное естественное использование декларативного ограничения FOREIGN KEY, увы, невозможно.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите как реализовать использование истории данных / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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