Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
задача следующая: создавать копии при каждом исменении записи в таблице. т. е. есть форма и когда кто-то меняет что-то в ней записывать в историю текущую и предыдущую запись. 1. способ созадать триггеры в SQL и при каждом изменеии(update/insert/delete) записывать в таблицу историю. 2. способ создать/подключить функцию в C# коде котораю при каждом update/insert/delete записывала в таблицу историю. хотелось бы услышать за и против каждого решения. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:11 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Триггеры зло, только второй способ. Ну и вдобавок, хранить предыдущее значение не имеет смысла, мы не него всегда сможем выйти. То есть имеем такую структуру: 1. Documents(DocumentId,Value1,Value2,Value3,...) 2. DocumentsHistory(DocumentId,Date,UserId,Value1,Value2,Value3,...) Соответственно, по DocumentId мы можем поднять всю историю. Надобность хранить предыдущие значения (типа Value1Old,Value2Old,Value3Old) отпадает сама собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:29 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
astepan, добавь к опросу ещё вариант обновления хранимой процедурой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:29 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Триггеры зло - можно пояснить почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:31 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Изопропил, а запускать процедуру ти имеешь ввиду откуда из кода или из триггера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:34 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
astepan, я к этому варианту не призываю - просто демострирую ещё одну возможность, но ни в коем случае не из триггера триггер - это костыль, последний шанс(чужое приложение, потеря исходников и т д) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:39 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
astepanТриггеры зло - можно пояснить почему? Просто верь на слово ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:43 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
МСУ, Поверить то я могу, :) но хотелось бы услышать более веские причины ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:45 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
МСУastepanТриггеры зло - можно пояснить почему? Просто верь на слово чтоб убедиться достаточно разок на грабли наступить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:46 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
astepanно хотелось бы услышать более веские причины Да они банальны, как перья курицы. Выше дед Изопропил разжевал на пальцах. Изопропилчтоб убедиться достаточно разок на грабли наступить До некоторых, порой, не с первого раза доходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 21:51 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
МСУ, Хочешь выразить свой ум урод?! наверное самый "умный" в классе?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 22:50 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Поддерживаю предыдущих ораторов - триггеры - зло. Причину объяснить действительно непросто. Ну вот ты купил в магазине хлеб, принес домой, а в сумке вместо хлеба пчела или кусок навоза. Как-то вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 22:59 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Хотелось-бы предложить делать вставку IDENTITY тоже из приложения, как МАХ(ID) + 1, раз так не любим триггеры. Нарисуем функцию для этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 23:05 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Relic HunterХотелось-бы предложить делать вставку IDENTITY тоже из приложения, как МАХ(ID) + 1, раз так не любим триггеры. Нарисуем функцию для этого. что за бред? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 23:09 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Изопропил, А вы думаете IDENTITY святым духом вставляется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 23:14 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Relic HunterИзопропил, А вы думаете IDENTITY святым духом вставляется? приращение идентити не вызывает блокировки записей в таблице, при откате транзакции значение идентити не откатывается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 23:21 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
ИзопропилRelic HunterИзопропил, А вы думаете IDENTITY святым духом вставляется? приращение идентити не вызывает блокировки записей в таблице, при откате транзакции значение идентити не откатывается Разве будет блокировка таблицы если в тригере inserted взять в другую таблицу вставить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 23:36 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
Встроенный механизм Identity никак не является пользовательским механизмом триггеров, зачем вообще обсуждать этот вброс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 23:44 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
astepanМСУ, Хочешь выразить свой ум урод?! наверное самый "умный" в классе?! Маленькая упоротая обезьянка, ты о чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 09:20 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
astepanзадача следующая: создавать копии при каждом исменении записи в таблице. т. е. есть форма и когда кто-то меняет что-то в ней записывать в историю текущую и предыдущую запись. 1. способ созадать триггеры в SQL и при каждом изменеии(update/insert/delete) записывать в таблицу историю. 2. способ создать/подключить функцию в C# коде котораю при каждом update/insert/delete записывала в таблицу историю. хотелось бы услышать за и против каждого решения. спасибо. в enterprice ms sql версии есть capture data source механизм для этого - лучше его использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 10:01 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
monstrUastepanзадача следующая: создавать копии при каждом исменении записи в таблице. т. е. есть форма и когда кто-то меняет что-то в ней записывать в историю текущую и предыдущую запись. 1. способ созадать триггеры в SQL и при каждом изменеии(update/insert/delete) записывать в таблицу историю. 2. способ создать/подключить функцию в C# коде котораю при каждом update/insert/delete записывала в таблицу историю. хотелось бы услышать за и против каждого решения. спасибо. в enterprice ms sql версии есть capture data source механизм для этого - лучше его использоватьИ чем он лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 10:02 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
skyANAmonstrUпропущено... в enterprice ms sql версии есть capture data source механизм для этого - лучше его использоватьИ чем он лучше? тем что там уже все реализовано и протестировано - можно просто пользоваться. наворочена большая гора всего - и триггеры, и service broker и еще черт знает что. не надо изобретать изобретения, которые уже сделаны до вас и протестированы - минимум напишите что-то похожее, а скорее всего по функционалу будет победнее. хранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 10:27 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
monstrUнаворочена большая гора всего Просто эпический аргумент, что сказать. Зачем мне экскаватор, если требуются только плоскогубцы? monstrUи триггеры На помойку. monstrUи service broker Тем более на помойку это убожество. monstrUи еще черт знает что. А это уж точно и даром не нужно. monstrUхранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас. Хранение истории - это тупая табличка с перечислением нужных полей в разрезе сущности, даты и пользователя. Проще даже нельзя придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 11:07 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
monstrUхранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас. давай-ка отбросим эти бестолковые рассуждения и задумаемся, например, хотя бы о том, как ты в триггере будешь записывать в таблицу истории ID текущего пользователя, сделавшего изменение? ID пользователя приложения естественно, а не пользователя базы данных. как? расскажи неучам, великий гуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 11:17 |
|
||
|
способы записи в таблицу историю
|
|||
|---|---|---|---|
|
#18+
hVosttmonstrUхранение истории - задача по объему совсем не мелкая, и поэтому если вы хотите сэкономить время - проще пользоваться сделанным до вас. давай-ка отбросим эти бестолковые рассуждения и задумаемся, например, хотя бы о том, как ты в триггере будешь записывать в таблицу истории ID текущего пользователя, сделавшего изменение? ID пользователя приложения естественно, а не пользователя базы данных. как? расскажи неучам, великий гуру. 1. change data capture http://msdn.microsoft.com/en-us/library/cc645937.aspx - если писать правильно 2. разве я собирался что-то куда-то записывать? я просто написал что есть такой пакет. если вас устраивает - можно пользоваться, нет - ну и нет 3. упаси боже кого учить - здоровье дороже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 12:18 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38779567&tid=1356925]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 458ms |

| 0 / 0 |
