Страница 1 из 1

Отслеживание правки данных

Добавлено: 19 июн 2014, 11:57
Pavel
Доброго времени суток!

Вопрос будет скорее носить разъяснительный характер, может кто сталкивался.:)

В данный момент пробую связку ArcGIS + PostgrSQL. Со структуры, которую создает ArcGIS для работы с этой СУБД я немного в шоке, но все же...

Пытаюсь навесить на таблицу с данными небольшой триггер, который будет отмечать и заносить в другую таблицу записи вида: "кто", "когда" и "что" делал с исходной таблицей.
Теперь для чего. Я знаю, что в ArcGIS есть функция "Включить отслеживание правки", которая создает 4 дополнительных колонки в таблице. Там отображаются действия кто создал и кто изменил, но нет отображения операции удаления. Поэтому и разбираюсь с этим вопросом.

Собственно, сам триггер хорошо отрабатывает в дефолтной версии БД. Но если пользователь создает свою версию, и начинает работать в ней, то триггер молчит до операции закрепления версии в дефолтную. При этом, имя пользователя в колонку "кто", подставляется суперюзера (то есть того, кто проводил закрепление).

Можно ли каким-либо способом навесить триггер на таблицу, чтобы он все-таки показывал правильные действия?
Где искать действия пользователя, если он работает в версии?

Прошу прощения, если немного сумбурно получилось:)

Re: Отслеживание правки данных

Добавлено: 27 июн 2014, 10:14
Ivanych999
Надо обратить внимание на следующие моменты:
1. Все версионные данные ведутся в других таблицах СУБД (дельта-таблицы): A<1111> - для добавляемых объектов и D<1111> - для удаленных объектов, где <1111> - регистрационный номер таблицы (можно узнать в таблице sde.table_registry поле registration_id)
2. Почитайте разделы справки http://resources.arcgis.com/ru/help/mai ... 0vp000000/ и http://resources.arcgis.com/ru/help/mai ... 00q000000/

Скорее всего, надо просто навесить ещё по триггеру на дельта-таблицы

Re: Отслеживание правки данных

Добавлено: 27 июн 2014, 13:29
Pavel
где <1111> - регистрационный номер таблицы (можно узнать в таблице sde.table_registry поле registration_id)
Я правильно понял, что этот Id присваивается один раз при регистрации данных как версионных? То есть потом, сколько не было бы создано версий, этот id не изменится?
Если это так, то вобще все красиво получается:)

Спасибо!

Re: Отслеживание правки данных

Добавлено: 27 июн 2014, 14:01
Ivanych999
Да. Всё так. Он присваивается в момент создания (регистрации) класса объектов, таблицы итд в базе геоданных.