powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / способы записи в таблицу историю
25 сообщений из 220, страница 3 из 9
способы записи в таблицу историю
    #38780049
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepanзадача следующая: создавать копии при каждом исменении записи в таблице. т. е.
есть форма и когда кто-то меняет что-то в ней записывать в историю текущую и предыдущую запись.

1. способ созадать триггеры в SQL и при каждом изменеии(update/insert/delete) записывать в таблицу историю.
2. способ создать/подключить функцию в C# коде котораю при каждом update/insert/delete записывала в таблицу историю.


хотелось бы услышать за и против каждого решения.
спасибо.3. Прикрутить к Entity Framework DbContext универсальный механизм логирования любых объектов контекста БД.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780100
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилАлексей КА если логика в хранимых процедурах, то триггера удобны.
то они не нужны +100500
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780104
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КOldValue таки лучше хранить. Из таблицы DocumentsHistory старые записи обычно удаляются.
Это будет избыточно. Если решили удалить данные из DocumentsHistory, значит не нужна история. А если не нужна история, то какие могут быть вопросы к предыдущим значениям? :)

Алексей КДля хранения лога в общем случае надо использовать EAV с типом данных nvarchar(max).
Вот не нужны тут никакие универсальные маханихмы. Типы полей истории должны строго соответствовать оригиналам. Обобщение - зло.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780115
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КOldValue таки лучше хранить. Из таблицы DocumentsHistory старые записи обычно удаляются.
Это будет избыточно. Если решили удалить данные из DocumentsHistory, значит не нужна история. А если не нужна история, то какие могут быть вопросы к предыдущим значениям? :)Ну не всё же удаляется. Удаляются записи старее, например, 7 суток.

МСУАлексей КДля хранения лога в общем случае надо использовать EAV с типом данных nvarchar(max).
Вот не нужны тут никакие универсальные маханихмы. Типы полей истории должны строго соответствовать оригиналам. Обобщение - зло.Не зло. :-)
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780119
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prowinsky!наверное. задайте.А мне не нужно, я уже попрыгал по этим граблям.

Я использую триггеры в двух случаях:
- заплатки к старой базе (которая вообще на MSSQL перетащена из Аксесса)
- временная заплатка, для нормальной работы предыдущей версии клиентского приложения одновременно с новой (пока неспешно идет апгрейд пользователей до новой версии)
и мне не нужно :) меня интересует мнение конкретных мемберов ЭТОЙ ветки
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780122
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не говорю, что во всех случаях триггеры - идеальное решение. но почему многие считают их АБСОЛЮТНЫМ злом- непонятно, и хотелось бы увидеть аргументов.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780126
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зло не зло, но с триггерами нужно очень всё внимательно тестировать и правильно их применять. иногда это сложнее и многие не справляются
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780130
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey1306В таблице есть поле ModifyUserID

ок, вопрос № 2. когда записи модифицирует супер-админ, они не должны попадать в историю. как?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780132
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!и хотелось бы увидеть аргументов.Это нарушает правила форума.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780136
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneзло не зло, но с триггерами нужно очень всё внимательно тестировать и правильно их применять. иногда это сложнее и многие не справляются set nocount on поставить в триггере это сложно, да... Какие там ещё особенности?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780137
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneзло не зло, но с триггерами нужно очень всё внимательно тестировать и правильно их применять. иногда это сложнее и многие не справляются в общем - пожалуй соглашусь

в сценарии Table -> logTable, где в лог таблицу добавлением пишутся изменения - все до предела просто. у меня где-то даже был скрипт, который для любой таблицы создавал триггеры и таблицу логгирования...
это конечно удобно только в сценариях, когда в контексте запроса известен конкретный пользователь. поскольку у меня долгое время для многих решений именно такой сценарий и работал, задача реашалась на ура.
поэтому триггеры, они, может и зло, но не абсолютное :)
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780141
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAndrey1306В таблице есть поле ModifyUserID

ок, вопрос № 2. когда записи модифицирует супер-админ, они не должны попадать в историю. как?

такой себе сценарий
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780142
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КKonst_Oneзло не зло, но с триггерами нужно очень всё внимательно тестировать и правильно их применять. иногда это сложнее и многие не справляются set nocount on поставить в триггере это сложно, да... Какие там ещё особенности?

ну некоторые не в курсе , что inserted - это массив строк , например.
а ещё триггеры разные ведь бывают и каскады из триггеров бывают очень нетривиальные
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780144
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кwinsky!и хотелось бы увидеть аргументов.Это нарушает правила форума. ну да. я забыл, отсутствовал какое-то время :)
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780145
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!hVosttпропущено...


ок, вопрос № 2. когда записи модифицирует супер-админ, они не должны попадать в историю. как?

такой себе сценарий

ну так как, с триггерами?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780149
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ку не всё же удаляется. Удаляются записи старее, например, 7 суток.
Ну значит мы всегда будем знать прошлое значение. Зачем его где-то еще хранить? Есть DocumentsHistory с полями истории. Этого 100% достаточно.

Алексей КВот не нужны тут никакие универсальные маханихмы. Типы полей истории должны строго соответствовать оригиналам. Обобщение - зло.Не зло. :-)[/quot]
Спорщик! )
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780151
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttwinsky!пропущено...


такой себе сценарий

ну так как, с триггерами?
да так же как и везде, есть такое слово
Код: sql
1.
WHERE
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780152
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneАлексей Кпропущено...
set nocount on поставить в триггере это сложно, да... Какие там ещё особенности?

ну некоторые не в курсе , что inserted - это массив строк , например.
а ещё триггеры разные ведь бывают и каскады из триггеров бывают очень нетривиальныеНу любой инструмент надо сначала изучить, потом использовать.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780154
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Ку не всё же удаляется. Удаляются записи старее, например, 7 суток.
Ну значит мы всегда будем знать прошлое значение. Зачем его где-то еще хранить? Есть DocumentsHistory с полями истории. Этого 100% достаточно.Потому что у меня в настоящее время работает такое решение, и оно мне не нравится. :-)
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780155
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneпропущено...


ну некоторые не в курсе , что inserted - это массив строк , например.
а ещё триггеры разные ведь бывают и каскады из триггеров бывают очень нетривиальныенекоторые, и даже очень многие, не в курсе, что существует MS SQL Server. не будем его использовать?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780156
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КKonst_Oneпропущено...


ну некоторые не в курсе , что inserted - это массив строк , например.
а ещё триггеры разные ведь бывают и каскады из триггеров бывают очень нетривиальныеНу любой инструмент надо сначала изучить, потом использовать.

ну так об этом и речь. поэтому для многих (кто не до конца изучил), триггеры - зло
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780158
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Ну значит мы всегда будем знать прошлое значение. Зачем его где-то еще хранить? Есть DocumentsHistory с полями истории. Этого 100% достаточно.Потому что у меня в настоящее время работает такое решение, и оно мне не нравится. :-)
+100500
у меня, ну уже не у меня, но работает несколько решений достаточно активно использующих описанный мной сценарий - никаких нареканий.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780160
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneАлексей Кпропущено...
Ну любой инструмент надо сначала изучить, потом использовать.

ну так об этом и речь. поэтому для многих (кто не до конца изучил), триггеры - зло Согласен. :-)
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780162
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAndrey1306В таблице есть поле ModifyUserID

ок, вопрос № 2. когда записи модифицирует супер-админ, они не должны попадать в историю. как?


ну во первых не чего ему там править, а во вторых DEFAULT (suser_sname()) FOR [SrvUserName]
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38780163
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПотому что у меня в настоящее время работает такое решение, и оно мне не нравится. :-)
Я покажусь бесцеремонным, если спрошу почему?
...
Рейтинг: 0 / 0
25 сообщений из 220, страница 3 из 9
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / способы записи в таблицу историю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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