Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

Еще раз о триггере   Найти похожие ветки 

 
MsGuns ©   (2003-02-24 21:12) [0]

Пару дней назад я уже задавал подобный вопрос, но сейчас нужны уже "подробности"

Есть БД, в которой определены несколько таблиц, довольно тесно взаимоувязанных логически. Как пример, схема:

Накладная -> Детал накладной -> Остатки по приходам -> остатки по складам интегрированно.
Накладная -> Данные о проплате (детал) <- Таблица проплат

Хочестся сделать логику максимально серверной. Т.е. с помощью цепочек триггеров. При изменении (удалении) одной записи детала, вся цепочка кажется мне достаточно "удобоваримой" и "влазит" в одну транзакцию. Но что делать, если меняется весь документ ? К примеру, удаляется (деактивируется) вся накладная целиком ? Тогда каждая из подобных цепочек триггеров должна срабатывать энное кол-во раз (по числу строк в документе) - а это уже, ИМХО, не есть хорошо. Как с точки зрения взаимоувязки (уровнями изоляции) между клиентами БД, так и неприглядности "дергания" сервера одиночными запросами. Здесь хороша была бы ХП с массовыми запросами. К сожалению, подобных ситуаций в имеющейся у меня литературе не нашел.
Прошу с точки зрения опыта РЕАЛЬНОЙ работы в области проектирования и сопровождения SQL-серверов (в частности, семейства IB ) высказать свои замечания и рекомендации.

С искренним уважением и надеждой.


 
DarkGreen ©   (2003-02-25 05:11) [1]

А что тебе мешает при создании вторичных ключей указать ON UPDATE CASCADE, ON DELETE CASCADE?


 
Alexandr ©   (2003-02-25 05:47) [2]


> Хочестся сделать логику максимально серверной. Т.е. с помощью
> цепочек триггеров.

похвально, но не стоит забывать про ХП.


> При изменении (удалении) одной записи
> детала, вся цепочка кажется мне достаточно "удобоваримой"
> и "влазит" в одну транзакцию.

да.

> Но что делать, если меняется
> весь документ ?
> К примеру, удаляется (деактивируется) вся
> накладная целиком ?

совершенно аналогично.

> Тогда каждая из подобных цепочек триггеров
> должна срабатывать энное кол-во раз (по числу строк в документе)
> - а это уже, ИМХО, не есть хорошо.

почему нехорошо? Нормально...

> Как с точки зрения взаимоувязки
> (уровнями изоляции) между клиентами БД,

никаких проблем.

> так и неприглядности
> "дергания" сервера одиночными запросами.

какими запросами?
Ну или повесь еще триггер на таблмцу накладных.
Вообщем, проблема непонятна...

> Здесь хороша была
> бы ХП с массовыми запросами.

ну так что мешает?

> К сожалению, подобных ситуаций
> в имеющейся у меня литературе не нашел.




Страницы: 1 вся ветка

Текущий архив: 2003.03.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
3-53953
anton2v
2003-02-26 12:08
2003.03.17
CREATE TABLE ms.dbf (price number(18,2))


7-54339
KDenis
2003-01-20 23:54
2003.03.17
Как быть?


14-54183
Supreme 2
2003-03-01 01:56
2003.03.17
Нужна компанента, которая будет плавно менять картинку на другую.


14-54235
@lex
2003-02-27 16:52
2003.03.17
Посчитать угол по 3 точкам


3-53840
BreakPoint
2003-02-21 11:47
2003.03.17
Delphi7 и Transact Sql