Страница 2 из 2

Добавлено: 05 май 2005, 20:31
Bagyr
в таких случаях мы используем примерно такую систему во всех таблицах:
ID - ключ
А - специфическое поче
UserID - ид пользователя
... другие поля

если A == 0, это эта запить действительная
если A != 0, то A указывает на ID изменённой записи, которая действует или ссылается на следующую изменённую запись
если A == ID, то запись удалена

DBA question

Добавлено: 05 май 2005, 21:33
Yuri Dimant
StS

Я непонял ,что надо отслеживать дату из несколко таблиц, сорри.
Тогда однозначно, триггер убьет performance. Я бы наверно написал stored procedure под каждыи DML и вносил бы в таблицы
Для каждои таблицы заведи Audit_MyTable и все изменения по этои таблице храни там.

Добавлено: 06 май 2005, 08:32
StS
Bagyr писал(а):в таких случаях мы используем примерно такую систему во всех таблицах:
ID - ключ
А - специфическое поче
UserID - ид пользователя
... другие поля

если A == 0, это эта запить действительная
если A != 0, то A указывает на ID изменённой записи, которая действует или ссылается на следующую изменённую запись
если A == ID, то запись удалена
О! А это мысль! Спасибо. Я только не понял когда изменённая запись ссылается на следующую изменённую запись. Я это так понимаю
При вставке записи
ID | A | UserID | Price
1 | 0 |CreatorOfRecord1 | 5.00
2 | 0 |CreatorOfRecord2 | 10.00
Первое изменение
1 | 0 |CreatorOfRecord1 | 5.00
2 | 0 |Changer1OfRecord2 | 7.00
3 | 2 |CreatorOfRecord2 | 10.00
Второе изменение
1 | 0 |CreatorOfRecord1 | 5.00
2 | 0 |Changer2OfRecord2 | 8.00
3 | 2 |CreatorOfRecord2 | 10.00
4 | 2 |Changer1OfRecord2 | 7.00
Удаление
1 | 0 |CreatorOfRecord1 | 5.00
2 | 2 |DeleterOfRecord2 | 8.00
3 | 2 |CreatorOfRecord2 | 10.00
4 | 2 |Changer1OfRecord2 | 7.00
5 | 2 |Changer2OfRecord2 | 8.00

На insert, delete, update пишем триггеры. Глухой безлунной ночью сносим в амбар всё где A!=0