Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
suser_sname() вернет нужного юзера без проблем. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 10:24 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
CREATE TRIGGER journal_delete ON dbo.JOURNAL FOR delete AS insert into logjournal (NREC,NOMER,DATA,FIO,AGE,CKLKONTR,POLIS,DNA,DKO,VALID,TELADR,DIAGNOZ, ZAMPO,CKLPROVIDER,STAM,DISP,SUMMA,VAL,CASH,STATUS,VREMK,MESTO,COMNAME, CKLSTRANA,CTUR,VDATE,FIO_ENG,PRIM,OB_DIAG, DE,KOGDA,KTO,OTKUDA) select NREC,NOMER,DATA,FIO,AGE,CKLKONTR,POLIS,DNA,DKO,VALID,TELADR,DIAGNOZ, ZAMPO,CKLPROVIDER,STAM,DISP,SUMMA,VAL,CASH,STATUS,VREMK,MESTO,COMNAME, CKLSTRANA,CTUR,VDATE,FIO_ENG,PRIM,OB_DIAG, 'Удаление',getdate(),system_user,host_name() from deleted Вот пример тригера на удаление. (на живой базе работает прекрасно. и возвращает и Доменное имя пользователя и Компьютер с которого было совершено удаление. MS SQL 2000 - SP3 (8.00.760) нет ни каких проблем при WinAut! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 11:07 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
По-моему вопрос не в протоколировании изменений, а в том, что собственно нужно протоколировать. А всякие академические споры, можно ли это сделать на триггерах или на процедурах или вообще не делать - так это фигня. В зависимости от сервера БД можно реализовать практически все что нужно. негатиф, незачот, афтар не пеши больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 13:02 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
Валентин КПо-моему вопрос не в протоколировании изменений, а в том, что собственно нужно протоколировать. А всякие академические споры, можно ли это сделать на триггерах или на процедурах или вообще не делать - так это фигня. В зависимости от сервера БД можно реализовать практически все что нужно. негатиф, незачот, афтар не пеши больше. Вообще-то требование именно такое: хранить все изменения любого поля, проводимые над акционерами; иметь возможность откатить на любую дату, просмотреть кто сделал изменение данного поля и пр. и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 16:25 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
Тогда сделать отдельную таблцу, где хранить имя атрибута, юзера и датувремя изменений, вобщем полный хистори над таблицей. Если это глобальная шиза, тогда все справочники хранить по Тецнеру и соответственно также привязать историю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 17:10 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
А как это - "по Тецнеру"? (Или по Тенцеру?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:00 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
У меня реализовано нечто похожее на предложенное Тигрой и Первым Андерсом 1. На каждую таблицу создается ее слепок (Customer -> CustomerHistory etc) Она имеет все поля, как оригинальная, плюс ДВА новых: ValidFrom и ValidTo PrimaryKey - identity, первичный ключ из оригинальной таблицы - кластерный во таблице истории, альтернативный ключ - первичный ключ из оригинальной таблицы плюс ValidFrom и ValidTo. 2. На оригинальной таблице пишем триггеры. Вставка пишет в поле ValidFrom значение GETDATE(), а в ValidTo - 01/01/3000 (баг 3000 заложен в дизайне!) Удаление записи вызывает делает следующее: для записи с тем же ключом, что в главной таблице, имеющей ValidTo равное 01/01/3000, ValidTo выставляется в GETDATE(). Изменение любого поля вызывает два действия: сначала алгоритм для удаления, а потом для вставки. Таким образом, чтобы получить текущее состояние, надо принести записи с ValidTo 01/01/3000 состояние на конкретную дату MyDate BETWEEN ValidFrom AND ValidTo В моем проекте я поддерживаю историю для 10-и таблиц, нареканий по скорости не было. Правда, дата в них не меняется очень часто, экстремальных нагрузок не проверял. Задача была связать заказ с ценой заказа на момент его выполнения (под ценой подразумевается еще туча характеристик, которые невыгодно хранить в истории заказа). Запрос на миллионах заказов нареканий не вызывал. Второе решение еще проще. Сходите на сайт www.apexsql.com, продукт ApexAudit, если не ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 11:54 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
tygra авторНу видимо товарисчу требуетсяч перевод: ЗЫ Не, найду время и выложу эту хрень. Пусть кому-то будет легче. -- Tygra's -- Ну давай уже выложи! А то все обещаешь, да обещаешь... Мне вот, например, было бы очень интересно посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 15:23 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
Почитайте очень грамотную статью http://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 17:50 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
> Почитайте очень грамотную статью А чего здесь грамотного, можно поинтересоваться? Бред, абсолютно оторванный от реальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 20:14 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
guest_20040621 А чего здесь грамотного, можно поинтересоваться? Бред, абсолютно оторванный от реальности. О! Узнаю мощный голос guest_xxx... Поинтересоваться то можно - но вы же опять ничего конкретного в ответ не скажите В статье описаны возможные способы организации аудита изменений данных. Под аудитом здесь понимается именно административные средства контроля за данными и к самой архитектуре системы он отношения не имеет. Статья написана для DBA MS SQL сервера, но многое из нее актуально и для других СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 22:46 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
> О! Я тоже рад Вас слышать. > В статье описаны возможные способы организации аудита изменений данных. ...абсолютно непригодные для реального применения. > и к самой архитектуре системы он отношения не имеет. Ну почему же? Там вроде было что-то о том, что регистрировались изменения, вносимые пользователями в структуру данных. Хотя, может, и невнимательно читал (жутко неудобно оформлено). > Статья написана для DBA MS SQL сервера Для dba? Не смешно. Для студентов первого курса, - это как бы более целевая аудитория. Собственно, просмотрел текст по диагонали исключительно для того, чтобы иметь представление о том, что это за очень грамотные статьи - и бесплатно. Оказалось - как обычно - бред по мотивам мануалов. Лучше Шуклина читать, - смешнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 23:48 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
funikovyuriПочитайте очень грамотную статью http://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml Приятная статья, правда ниасилил, за время, которое я уделяю на чтение новостей. Хорошо проделанная работа по сбору информации, стиль - присущий женскому обществу - простой и практичный. Комментарии. Изменение метаданных и изменение данных - я считаю вопросами разными с различным подходом в логировании. метаданные. Меня поразила прозаичность решения - сравнить 2 базы, чтобы узнать изменения... кто же так пишет проекты? база данных - это что мусорная куча, куда лезут все кому не лень и меняют структуру, бизнес логику? По моему логировать должны программисты сами, указывая что они для конкретной задачи меняли с кратким описанием. Тогда это будет нормальная хистори. данные. Единственный совет любителям логирования - не перебарщивайте. Концепцию логирования естественно нужно делать на самом высоком уровне централизации лог-событий. Но не стоит включать логирование всего и вся, без причины на это. Поскольку все это утяжеляет работы БД, ее размер и прочее. Всегда нужно искать компромис между скоростью и функционалом, производительностью и стоимостью... немого отвлекся в сторону философии, но так и есть на самом деле... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2005, 14:07 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
Сорри не в тот топик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2005, 14:07 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
goodron tygra авторНу видимо товарисчу требуетсяч перевод: ЗЫ Не, найду время и выложу эту хрень. Пусть кому-то будет легче. -- Tygra's -- Ну давай уже выложи! А то все обещаешь, да обещаешь... Мне вот, например, было бы очень интересно посмотреть. Времени нет, умираю от работы!!!!!!!!!!!!!!!!! Даже форум раз в три дня читаю - вот до чего дошел! :) Обесчаю в октябре выложить. Прямо-таки торжественно клянусь. Со всеми скриптами и т.д. Прямо рабочую систему. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 16:35 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
funikovyuriПочитайте очень грамотную статью http://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml Еще не дочитал. Но статья показалась интересной хотя бы с точки зрения систематизации подходов. А вот такой вопрос к уважаемой аудитории. Задачу "журналирования" отдельных записей можно расширить до сохранения версий совокупности записей. Пример из банковской сферы: Есть таблица в которой содержится информация о том как будет возвращаться кредит - множество пар (дата,сумма). График погашения может меняться. Интерес представляет не знание того как изменилась та или инная дата или сумма, а как изменился график вцелом. Сколько версий графика имеется? и.т.д. Конечно же версии совокупности записей можно восстановить по версиям записей из этой совокупности. Подобная задача решалась мною и решение оказалось довольно громоздким. Что вы об этом думаете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 13:47 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
> Задачу "журналирования" отдельных записей можно расширить > до сохранения версий совокупности записей. Это не расширение задачи. Это один из способов ее постановки. Любая база данных должна позволять извлекать состояние объектов на определенную дату. > Конечно же версии совокупности записей можно восстановить по > версиям записей из этой совокупности. Я бы решил эту задачу, описав погашение кредита как процесс. Не вижу проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 14:46 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Я бы решил эту задачу, описав погашение кредита как процесс. Не вижу проблем. в двух словах , как ты это видишь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 14:53 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
> в двух словах , как ты это видишь? Берем любую подходящую нотацию (например, IDEF3). С идеологической точки зрения операция кредитования (как процесс) не отличается от любого другого технологического процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:02 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
guest_20040621> в двух словах , как ты это видишь? Берем любую подходящую нотацию (например, IDEF3). С идеологической точки зрения операция кредитования (как процесс) не отличается от любого другого технологического процесса. спасибо, посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:10 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
guest_20040621> в двух словах , как ты это видишь? Берем любую подходящую нотацию (например, IDEF3). С идеологической точки зрения операция кредитования (как процесс) не отличается от любого другого технологического процесса. А чем отличаются IDEF1, IDEF2. И вообще, это методология проектирования альтернативная UML ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:16 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
> А чем отличаются IDEF1, IDEF2. idefinfo.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:48 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
По моему это уже флуд, а не обсуждение темы. Для решения такого элементарного действа, как методы логирования на практике все выросло в ахтунг какой-то.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 18:10 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
M.Kap. Берем любую подходящую нотацию (например, IDEF3). Уважаемый guest_xxx не считает важным упомянуть что IDEF'ы никакого отношения к OOA/OOD не имеют так что если у вас они, то придется еще и изучить несколько непохожую методологию - которая вам к стати вряд ли в будущем пригодиться... Это к слову... Если же вам нужно будет описать процесс - то есть во-первых Activity Diagrams в UML, XPD (язык описания процессов на xml) и т.д. Есть таблица в которой содержится информация о том как будет возвращаться кредит - множество пар (дата,сумма). График погашения может меняться. Интерес представляет не знание того как изменилась та или инная дата или сумма, а как изменился график вцелом. Сколько версий графика имеется? и.т.д. Ввести сущность график выплат и для него вести историю... guest_xxx Статья хороша еще и тем, что решает конкретную задачу - а именно аудит изменений данных. К сожалению, очень часто эта задача путается с ведением истории изменения какой-либо сущности предметной области (см. задачу про кредитный договор) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2005, 22:19 |
|
||
|
Протоколирование изменений в БД
|
|||
|---|---|---|---|
|
#18+
funikovyuri M.Kap. Есть таблица в которой содержится информация о том как будет возвращаться кредит - множество пар (дата,сумма). График погашения может меняться. Интерес представляет не знание того как изменилась та или инная дата или сумма, а как изменился график вцелом. Сколько версий графика имеется? и.т.д. Ввести сущность график выплат и для него вести историю... В том то и дело, что сущность в БД выражается записью. Нет встроенной возможности создавать "векторные" сущности из многих записей. Вот кабы, был табличный тип столбца ... а ля create table (col1 table) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 10:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33267077&tid=1545667]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 388ms |

| 0 / 0 |
