Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.016 c
1-53980
calm
2003-03-06 10:48
2003.03.17
Почему не перерисовывается Listbox?


14-54227
Николай Быков
2003-03-02 20:30
2003.03.17
Эх, как же я вам, взрослым, завидую


9-53827
Asteroid
2002-10-08 00:46
2003.03.17
Потеря поверхности


3-53908
Tornado
2003-02-25 12:59
2003.03.17
Что нужно включить в дистрибутив?


1-53985
Tema
2003-03-06 09:41
2003.03.17
Стиль формы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский