powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / История изменения данных БД
13 сообщений из 13, страница 1 из 1
История изменения данных БД
    #39219709
asm-msadev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, кто как ведет аудит изменения данных? Проект asp.net mvc, бд sql server. Нужно хранить историю изменения записей в бд. Например, есть таблица Users и класс User. Необходимо видеть кто, когда, и какое поле изменил с какого значение на какое. Кроме как триггеров никаких идей нет. Используем code first.
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219711
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadevНарод, кто как ведет аудит изменения данных?Хранение изменений в EAV структуре данных. Заполнение триггерами в БД. Но это старый проект, тогда не было EF.
asm-msadevИспользуем code first.Отслеживать изменения можно и через DbContext, в момент вызова SaveChanges.

Оба подхода имеют преимущества, недостатки и право на жизнь.
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219729
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadev,

CQRS + Event Sourcing
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219822
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadev, а у Вас приложение при каждом запросе подключается к БД от имени конкретного пользователя?
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219830
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadev,

в Ms sql есть механизм CDC для этого
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219831
asm-msadev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, да. Учетная запись IISa. => Триггерами не получится вычислить пользователя?
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219836
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadevskyANA, да. Учетная запись IISa. => Триггерами не получится вычислить пользователя?
Да, триггерами не получится..
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219838
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUasm-msadev,

в Ms sql есть механизм CDC для этого
У ТСа приложение ходит в базу из-под учетки, что прописана в настройках IIS.
При помощи какой магии CDC отследит конкретного пользователя, кто изменил что-то?
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219845
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadevskyANA, да. Учетная запись IISa. => Триггерами не получится вычислить пользователя?Текущего пользователя прикладной системы безопасности, и прочий контекст, можно хранить во временной таблице MSSQL. Создавать эту таблицу где-нибудь на уровне фабрики соединений к БД.
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219905
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttasm-msadev,

CQRS + Event Sourcing
я все хочу это к себе и все никак( пока не могу доказать начальству и коллегам что это сделаешь жизнь проще, хотя может действительно так
п.с. первый раз узнал о таком от известного товарища бындю на местной конфе и загорелся
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219908
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТекущего пользователя прикладной системы безопасности, и прочий контекст, можно хранить во временной таблице MSSQL. Создавать эту таблицу где-нибудь на уровне фабрики соединений к БД.

Прям дыжявю: кривые грабля-решения уровня студента-первокурсника всё так же актуальны. Чувствую лет через 10 зайду и будет всё тоже самое: триггеры, временная таблица при соединении с айдишником пользователя...

no more comments!
...
Рейтинг: 0 / 0
История изменения данных БД
    #39219920
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuhVosttasm-msadev,

CQRS + Event Sourcing
я все хочу это к себе и все никак( пока не могу доказать начальству и коллегам что это сделаешь жизнь проще, хотя может действительно так
п.с. первый раз узнал о таком от известного товарища бындю на местной конфе и загорелся

Я так скажу: не стоит ждать чьего-то Большого решения, чтобы затеять Великий рефакторинг. Начинаешь с малого, на не (очень) критичной части программного комплекса — это может маленький сервис или независимый модуль, где можно это начать использовать без ущерба. А может совсем отдельный небольшой проект. А потом оно само проникает глубже и глубже. К хорошему привыкаешь очень быстро.

Что могу сказать по существу, CQRS и Event Sourcing очень даже рулят и полностью решают огромный комплекс задач, связанных с историей (и вообще: что, кто, когда, в каком порядке, сложная бизнес-логика, сложнейшие отчёты по движению данных и т.д. и т.п.) Все эти триггеры, генерация данных в SaveChanges и прочие кривые костыли — детский сад, от слова совсем.
...
Рейтинг: 0 / 0
История изменения данных БД
    #39220014
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asm-msadev,
Я делал примерно так.
Таблицы, которые должна иметь историю, содержали такие обязательные поля.
Код: sql
1.
DECLARE @t TABLE(id INT IDENTITY, [guid] UNIQUEIDENTIFIER  DEFAULT NEWID(), userId INT, dateCreated DATETIME  DEFAULT GETDATE());


Актуальные данные получались джойном с такой вьюшкой
Код: sql
1.
2.
SELECT MAX (id) [id], guid FROM @t
  GROUP BY guid


UPDATE не было, только INSERT.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / История изменения данных БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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