Гость
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / хранение, просомтр предыдущих значений полей / 25 сообщений из 26, страница 1 из 2
28.09.2007, 10:58
    #34833728
Чендлер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Есть БД около 50 табличек, требуется хранить не только текущение значение но и все предыдущие. Как это можно организовать? Требуемых по функционалу темпоральных субд не нашёл.
...
Рейтинг: 0 / 0
28.09.2007, 12:10
    #34834111
А6дулла
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
1C 7.5 и выше, функциональность включается галочкой :)
...
Рейтинг: 0 / 0
28.09.2007, 12:18
    #34834150
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
...
Рейтинг: 0 / 0
28.09.2007, 12:49
    #34834303
Чендлер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
А6дулла1C 7.5 и выше, функциональность включается галочкой :)

Я в шоке :)
но 1с не подходит
...
Рейтинг: 0 / 0
28.09.2007, 13:06
    #34834382
sereginseregin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
ЧендлерЕсть БД около 50 табличек, требуется хранить не только текущение значение но и все предыдущие. Как это можно организовать? Требуемых по функционалу темпоральных субд не нашёл.

Создайте собственную
похожий топик Поддержка исправлений и версий
...
Рейтинг: 0 / 0
28.09.2007, 14:27
    #34834815
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
В теме Проектирование БД поиск по слову История даст Вам практически все известные варианты решения данной проблемы.
...
Рейтинг: 0 / 0
28.09.2007, 14:50
    #34834926
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
По МССКЛ кажется в профильном форуме скуль.ру была статья
...
Рейтинг: 0 / 0
28.09.2007, 16:22
    #34835341
Gues99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Такая задача обычно ставится для Хранилища Данных, а не для OLTP базы.

Называется это Slowing Changing Dimensions.

В Oracle и MSSQL они немного отличаются,
для Оракла вот дока
http://asun.ifmo.ru/docs/doc111/owb.111/b31278/concept_data_modeling.htm#BEIEDBGG

Вам нужен Type 2 Slowly Changing Dimension (SCD) retains the full history of values
...
Рейтинг: 0 / 0
30.09.2007, 18:14
    #34837072
Den_TST
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Попробуйте использовать систему версионности
Т.е для каждой сущности добавьте два атрибута - начало и конец периода актуальности. Соответствнно актуальной будет только одна запись в табличке.
Как?
...
Рейтинг: 0 / 0
30.09.2007, 22:09
    #34837252
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Gues99Вам нужен Type 2 Slowly Changing Dimension (SCD) retains the full history of values
забыли одну незначительную мелочь, еще ORACLE нужен. а также то, что к OLTP это никакого отнощения конечно не имеет.
...
Рейтинг: 0 / 0
30.09.2007, 22:11
    #34837255
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Den_TSTПопробуйте использовать систему версионности
Т.е для каждой сущности добавьте два атрибута - начало и конец периода актуальности. Соответствнно актуальной будет только одна запись в табличке.
Как?
никак. предлагаете танцы с бубнами для того чтобы просто узнать текущее состояние БД
...
Рейтинг: 0 / 0
01.10.2007, 18:32
    #34839178
AlexTheRaven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
ЧендлерЕсть БД около 50 табличек, требуется хранить не только текущение значение но и все предыдущие. Как это можно организовать? Требуемых по функционалу темпоральных субд не нашёл.
Можно использовать EAV с параметрами "дата создания" и (при необходимости) "актуально" для каждого значения. Только стоит ли эта "фича" таких сложностей?
...
Рейтинг: 0 / 0
01.10.2007, 21:35
    #34839498
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
ЧендлерЕсть БД около 50 табличек, требуется хранить не только текущение значение но и все предыдущие. Как это можно организовать? Требуемых по функционалу темпоральных субд не нашёл.
Зависит от того, зачем и в каких условиях Вам это нужно. Например, можно использовать фичу Oracle, которая называется flashback query.
...
Рейтинг: 0 / 0
02.10.2007, 10:08
    #34839938
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
"Например, можно использовать фичу Oracle, которая называется flashback query." - и сколько они по-времени будут эту инфу хранить :)?один день?
...
Рейтинг: 0 / 0
02.10.2007, 10:20
    #34839969
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Так,пропало куда-то мое сообщение. В общем нелестно я там отозвался об этих самых флешах.опасны все эти проприетарные вещи+имеют место плодиться.если мне не изменяет память у оракла еще одна была какая-то хрень тоже для истории (причем реализовала аналогичные вещи флешу,только не было всяких VERSIONS_STARTSCN и прочих ненужных пмсм вещей для бизнес-программ).в итоге все пользуются своими и собственно довольны.
...
Рейтинг: 0 / 0
02.10.2007, 10:24
    #34839987
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
блин,сообщение появилось.как-то забавно форум ведет себя.единственно,что может быть ценно в флешах-это UNDO_SQL,но тоже как-то встает вопрос о длительности и оптимальности его хранения и последующем росте БД.
...
Рейтинг: 0 / 0
02.10.2007, 10:29
    #34840001
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
ну а "Some DDLs that alter the structure of a table, such as drop/modify column, move table, drop partition, and truncate table/partition, invalidate any existing undo data for the table. It is not possible to retrieve data from a point earlier than the time such DDLs were executed. " просто ставит крест на всей этой идее. Так что "ручная" история рулит.
...
Рейтинг: 0 / 0
02.10.2007, 13:00
    #34840578
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Shtockи сколько они по-времени будут эту инфу хранить :)?один день?
Можно и год. Зависит от условий и требований.

ShtockВ общем нелестно я там отозвался об этих самых флешах.опасны все эти проприетарные вещи+имеют место плодиться.
Проприетарность тут не при чем. Флеши - специфическая фича, удобная в некоторых случаях и неподходящая во многих других. Если обратите внимание, я нигде не утверждаю, что ее стоит применять в этом неописанном конкретном случае - упомянул для расширения кругозора топикстартера.

Shtockесли мне не изменяет память у оракла еще одна была какая-то хрень тоже для истории
Еще минимум три :)

Shtockв итоге все пользуются своими и собственно довольны.
А, ну оно конечно. Типа - "Мерседес" выпускает хрени от мотоциклов до танков, поэтому все ездят на велосипедах и довольны :)
...
Рейтинг: 0 / 0
02.10.2007, 13:06
    #34840606
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Ладно,это все словоблудие. после этого расширять кругозор думаю больше не стоит.
...
Рейтинг: 0 / 0
02.10.2007, 13:16
    #34840642
Чендлер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Хранить нужно каждое изменение поля, время хранения = время жизни системы.
...
Рейтинг: 0 / 0
02.10.2007, 15:14
    #34841170
sergey888
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
ЧендлерХранить нужно каждое изменение поля, время хранения = время жизни системы.

в Русском бизнесе именно так и происходит - историруется каждое изменения поля во всех объектах.
...
Рейтинг: 0 / 0
04.10.2007, 12:15
    #34846309
А6дулла
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
Кстати,
как вам такая идея -
оставить вашу базу "как есть", но включить в Oracle CDC (штатный механизм отлова изменений).
Данные, отловленные CDC, складировать в еще одной базе. Или там же.
...
Рейтинг: 0 / 0
04.10.2007, 12:30
    #34846387
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
А6дуллаоставить вашу базу "как есть", но включить в Oracle CDC (штатный механизм отлова изменений). Данные, отловленные CDC, складировать в еще одной базе. Или там же.
Зачем такие сложности?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
SQL> conn test/test@db1.sphaera197;
Connected to Oracle Database 10g Enterprise Edition Release  10 . 1 . 0 . 5 . 0  
Connected as test

SQL> create table data as select rownum id, rownum data from dual connect by level <=  10 ;

Table created

SQL> alter table data add primary key (id);

Table altered

SQL> exec dbms_wm.enableversioning (table_name => 'data', hist => 'VIEW_WO_OVERWRITE');

PL/SQL procedure successfully completed

SQL> select * from data;

        ID       DATA
---------- ----------
          1            1 
          2            2 
          3            3 
          4            4 
          5            5 
          6            6 
          7            7 
          8            8 
          9            9 
         10           10 

 10  rows selected

SQL> update data set data =  2  * data where mod (id,  2 ) =  0 ;

 5  rows updated

SQL> update data set data =  3  * data where mod (id,  3 ) =  0 ;

 3  rows updated

SQL> select * from data;

        ID       DATA
---------- ----------
          1            1 
          5            5 
          7            7 
          2            4 
          4            8 
          8           16 
         10           20 
          3            9 
          9           27 
          6           36 

 10  rows selected

SQL> select * from data_hist where id =  6 ;

        ID       DATA WM_WORKSPACE                                                WM_VERSION WM_USERNAME                                                                      WM_OPTYPE WM_CREATETIME                                     WM_RETIRETIME
---------- ---------- ------------------------------ --------------------------------------- -------------------------------------------------------------------------------- --------- ------------------------------------------------- -------------------------------------------------
          6            6  LIVE                                                                  0  TEST                                                                             I          04 -OCT- 07   12 . 26 . 20 . 203000  PM + 04 : 00                 04 -OCT- 07   12 . 26 . 48 . 218000  PM + 04 : 00 
          6           12  LIVE                                                                  0  TEST                                                                             U          04 -OCT- 07   12 . 26 . 48 . 218000  PM + 04 : 00                 04 -OCT- 07   12 . 27 . 02 . 703000  PM + 04 : 00 
          6           36  LIVE                                                                  0  TEST                                                                             U          04 -OCT- 07   12 . 27 . 02 . 703000  PM + 04 : 00                
...
Рейтинг: 0 / 0
04.10.2007, 12:34
    #34846403
А6дулла
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
нет дат изменения
...
Рейтинг: 0 / 0
04.10.2007, 12:35
    #34846409
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранение, просомтр предыдущих значений полей
А6дулланет дат изменения
Протри глаза.
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / хранение, просомтр предыдущих значений полей / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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