powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Журнал изменений
17 сообщений из 17, страница 1 из 1
Журнал изменений
    #32389690
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем Участникам!
Кто может подсказать что-нибудь дельное по аудиту действий пользователей в КИС? Как спроектировать для хранения и как фиксировать факты действий пользователей?
Заранее благодарен.
...
Рейтинг: 0 / 0
Журнал изменений
    #32389726
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Это сложно описать в двух словах. Можно сделать так: для каждой таблицы DATS создаются еще две - DAT1 (содержит только ключ DATS и, возможно, служебную информацию) и DATH (DATS + идентификатор версии-ссылка на таблицу VERS). VERS содержит информацию о пользователе, времени изменения и т.п. Заполняется все это триггерами. Может понадобиться и таблица DAT2 для группы связанных таблиц (главная+подчиненные) - в нее записывается последовательность изменений всей группы
...
Рейтинг: 0 / 0
Журнал изменений
    #32390120
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается, что Названия изменяемых полей в триггере надо прописывать ручками?
:((
...
Рейтинг: 0 / 0
Журнал изменений
    #32390234
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю так: создаю одну таблицу RegBook. В неё пишу все изменения по другим таблицам БД: значение до изменения, значение после изменения, значение уникального поля новой записи, код пользователя, осуществившего изменения, время изменения. Информация о пользователях и таблицах БД хранится в двух других таблицах соответствено. Этот подход удобен тем, что не раздувается словарь баз данных, увеличивается производительность приложения по сравнению с методом журналирования "помечение записей".
...
Рейтинг: 0 / 0
Журнал изменений
    #32390237
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще удобно управлять журналированием на клиенте с использованием такого подхода. У меня нужные действия по нему ведутся на сервере приложений
...
Рейтинг: 0 / 0
Журнал изменений
    #32390271
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На практике тотальный аудит редко бывает нужен.
Нужно фиксировать отдельные факты.
Это резко упрощает задачу.
Вот, например, простейшая табличка, которая уже выполняет роль аудиторской:

1. Дата и время факта,
2. Кто породил факт,
3. К какому типу фактов относится сей факт,
4. Что собой представляет сей факт,
5. Ссылка на тип источника, над которым свершен факт,
6. Ссылка на источник, над которым свершен факт,
7 Дополнительные сведения об этом факте (в общем случае, для заполнения не обязательно - только если требуется развернуть).

Фиксировать следует только критичные факты.

Еще пара соображений:
- Если структура данных предусматривает хранение истории, аудит можно совместить с историей.
- Полезно помимо таблиц поддержки аудита в изменяемых таблицах иметь поля для фиксации даты-времени последнего изменения и кода пользователя, который это изменение устроил.
...
Рейтинг: 0 / 0
Журнал изменений
    #32390272
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Журнал изменений
    #32390289
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Shtock :
Не совсем понял смысл фразы : значение уникального поля новой записи,
...
Рейтинг: 0 / 0
Журнал изменений
    #32390295
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Urri
Мне нужно знать какое поле в таблице было изменено. И не хочется в триггерах везде прописывать ивно IF UPDATE(Имя_Поля).
:((
...
Рейтинг: 0 / 0
Журнал изменений
    #32390311
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда в общем случае без триггеров или вызываемых вами же вручную процедур не обойтись.
Как сделать чтобы не писать множественные конструкции для всех полей?
Учите матчасть - разные средства разработки по-разному предоставляют / не предоставляют такую возможность.
...
Рейтинг: 0 / 0
Журнал изменений
    #32390326
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Kostya: по правилам проектирования БД каждая запись должна иметь уникальное поле, однозначно идентифицирующее ее. Именно это я и имел ввиду. Кстати, у меня еще есть поле "Характер изменений".
...
Рейтинг: 0 / 0
Журнал изменений
    #32390332
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там хранится значение этого уникального ключевого поля
...
Рейтинг: 0 / 0
Журнал изменений
    #32390525
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ALL
именно Urri сформулировал мою проблему.
Как сделать чтобы не писать множественные конструкции для всех полей?
Остальные проблемы я вроде бы решил.
Жаль что функция UPDATE() в MS SQL2000 не работает с переменными в качестве параметра, а то я бы решил эту проблему.
:(((
...
Рейтинг: 0 / 0
Журнал изменений
    #32390691
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
2 Получается, что Названия изменяемых полей в триггере надо прописывать ручками?
:((

Мы делали это с помощью самодельного перпроцессора
...
Рейтинг: 0 / 0
Журнал изменений
    #32390992
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Guest
Ой МАМА, я и слов то таких не знаю.
Значит придется все прописывать.
:((
...
Рейтинг: 0 / 0
Журнал изменений
    #32391012
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помотрите утилиту IBExpert. (IBExpert.com)

Правда, работает с InterBase, но, думаю, разницы в принципе никакой. Там они предлагают сервис - типа Вашего аудита. По вашему запросу генерят таблицу для сохранения истории, и указинием кто, когда и что сделал. Очень интересно и просто. Всего-то - поставить какой-нибудь Interbase/FireBird/Yaffil и - вперед. SQL, правда, чуть-чуть отличается от MS SQL. Зато идея - на поверхности, бери и юзай.
...
Рейтинг: 0 / 0
Журнал изменений
    #32391050
KostyaSPB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2mv
САПАСИБА. Посмотрю.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Журнал изменений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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