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

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


хотелось бы услышать за и против каждого решения.
спасибо.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779140
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггеры зло, только второй способ. Ну и вдобавок, хранить предыдущее значение не имеет смысла, мы не него всегда сможем выйти.
То есть имеем такую структуру:

1. Documents(DocumentId,Value1,Value2,Value3,...)
2. DocumentsHistory(DocumentId,Date,UserId,Value1,Value2,Value3,...)

Соответственно, по DocumentId мы можем поднять всю историю. Надобность хранить предыдущие значения (типа Value1Old,Value2Old,Value3Old) отпадает сама собой.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779141
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepan,

добавь к опросу ещё вариант обновления хранимой процедурой
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779142
astepan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггеры зло - можно пояснить почему?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779147
astepan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

а запускать процедуру ти имеешь ввиду откуда из кода или из триггера?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779149
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepan,

я к этому варианту не призываю - просто демострирую ещё одну возможность, но ни в коем случае не из триггера

триггер - это костыль, последний шанс(чужое приложение, потеря исходников и т д)
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779152
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepanТриггеры зло - можно пояснить почему?
Просто верь на слово
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779157
astepan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Поверить то я могу, :)

но хотелось бы услышать более веские причины
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779158
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУastepanТриггеры зло - можно пояснить почему?
Просто верь на слово
чтоб убедиться достаточно разок на грабли наступить
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779162
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepanно хотелось бы услышать более веские причины
Да они банальны, как перья курицы. Выше дед Изопропил разжевал на пальцах.

Изопропилчтоб убедиться достаточно разок на грабли наступить
До некоторых, порой, не с первого раза доходит.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779186
astepan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Хочешь выразить свой ум урод?! наверное самый "умный" в классе?!
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779190
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддерживаю предыдущих ораторов - триггеры - зло.

Причину объяснить действительно непросто. Ну вот ты купил в магазине хлеб, принес домой, а в сумке вместо хлеба пчела или кусок навоза. Как-то вот так.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779193
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось-бы предложить делать вставку IDENTITY тоже из приложения, как МАХ(ID) + 1, раз так не любим триггеры. Нарисуем функцию для этого.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779196
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterХотелось-бы предложить делать вставку IDENTITY тоже из приложения, как МАХ(ID) + 1, раз так не любим триггеры. Нарисуем функцию для этого.
что за бред?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779201
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

А вы думаете IDENTITY святым духом вставляется?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779205
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterИзопропил,

А вы думаете IDENTITY святым духом вставляется?
приращение идентити не вызывает блокировки записей в таблице,
при откате транзакции значение идентити не откатывается
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779214
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилRelic HunterИзопропил,

А вы думаете IDENTITY святым духом вставляется?
приращение идентити не вызывает блокировки записей в таблице,
при откате транзакции значение идентити не откатывается

Разве будет блокировка таблицы если в тригере inserted взять в другую таблицу вставить ?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779222
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встроенный механизм Identity никак не является пользовательским механизмом триггеров, зачем вообще обсуждать этот вброс?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779404
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepanМСУ, Хочешь выразить свой ум урод?! наверное самый "умный" в классе?!
Маленькая упоротая обезьянка, ты о чем?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779457
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astepanзадача следующая: создавать копии при каждом исменении записи в таблице. т. е.
есть форма и когда кто-то меняет что-то в ней записывать в историю текущую и предыдущую запись.

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


хотелось бы услышать за и против каждого решения.
спасибо.
в enterprice ms sql версии есть capture data source механизм для этого - лучше его использовать
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779460
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUastepanзадача следующая: создавать копии при каждом исменении записи в таблице. т. е.
есть форма и когда кто-то меняет что-то в ней записывать в историю текущую и предыдущую запись.

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


хотелось бы услышать за и против каждого решения.
спасибо.
в enterprice ms sql версии есть capture data source механизм для этого - лучше его использоватьИ чем он лучше?
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779489
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAmonstrUпропущено...

в enterprice ms sql версии есть capture data source механизм для этого - лучше его использоватьИ чем он лучше?

тем что там уже все реализовано и протестировано - можно просто пользоваться.
наворочена большая гора всего - и триггеры, и service broker и еще черт знает что.

не надо изобретать изобретения, которые уже сделаны до вас и протестированы - минимум напишите что-то похожее, а скорее всего по функционалу будет победнее.

хранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779551
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUнаворочена большая гора всего
Просто эпический аргумент, что сказать. Зачем мне экскаватор, если требуются только плоскогубцы?

monstrUи триггеры
На помойку.

monstrUи service broker
Тем более на помойку это убожество.

monstrUи еще черт знает что.
А это уж точно и даром не нужно.

monstrUхранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас.
Хранение истории - это тупая табличка с перечислением нужных полей в разрезе сущности, даты и пользователя. Проще даже нельзя придумать.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779567
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUхранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас.

давай-ка отбросим эти бестолковые рассуждения и задумаемся, например, хотя бы о том, как ты в триггере будешь записывать в таблицу истории ID текущего пользователя, сделавшего изменение? ID пользователя приложения естественно, а не пользователя базы данных. как? расскажи неучам, великий гуру.
...
Рейтинг: 0 / 0
способы записи в таблицу историю
    #38779711
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttmonstrUхранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас.

давай-ка отбросим эти бестолковые рассуждения и задумаемся, например, хотя бы о том, как ты в триггере будешь записывать в таблицу истории ID текущего пользователя, сделавшего изменение? ID пользователя приложения естественно, а не пользователя базы данных. как? расскажи неучам, великий гуру.

1. change data capture http://msdn.microsoft.com/en-us/library/cc645937.aspx - если писать правильно
2. разве я собирался что-то куда-то записывать? я просто написал что есть такой пакет. если вас устраивает - можно пользоваться, нет - ну и нет
3. упаси боже кого учить - здоровье дороже.
...
Рейтинг: 0 / 0
25 сообщений из 220, страница 1 из 9
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / способы записи в таблицу историю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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