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

База данных

Добавлено: 08 авг 2004, 21:10
kas
Есть две таблицы: заказы и работы. Связаны один ко многим т.е. у заказа список работ. Нужно гарантировать средствами БД, что у каждого заказа будет хотя бы одна работа.

В IRC hell предложил повесить триггер на DELETE и UPDATE, а также сделать хранимую процедуру для вставки. Вот только я не совсем предстваляю, как эта хранимая процедура должна выглядеть.

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

P.S СУБД -- PostgreSQL

Добавлено: 09 авг 2004, 07:56
Llama
kas, хоть бы ты примеры посмотрел. Хранимая процедура принимает в качестве параметров данные, а не таблицы.
См например как сделано тут:
http://www.tek-tips.com/gfaqs.cfm/lev2/ ... 9/fid/3411
http://forums.devshed.com/t114218/s.html

Добавлено: 09 авг 2004, 08:30
kas
А если мне, как в данном случае, нужно передать данные неопределённого резмера -- набор строк для таблицы работ?

Добавлено: 09 авг 2004, 09:45
Eugene
В таких случаях используют курсор. Лично я с Postgre не сталкивался настолько близко, но почему-то уверен что поддержка курсоров там быть обязана :wink:

Добавлено: 09 авг 2004, 09:46
Llama
М.б. тут найдешь.
http://forums.devshed.com/t47247/s.html

Добавлено: 09 авг 2004, 11:43
Andrej Ramaszeuski
Eugene писал(а):В таких случаях используют курсор. Лично я с Postgre не сталкивался настолько близко, но почему-то уверен что поддержка курсоров там быть обязана :wink:
Представь себе, есть :)

Добавлено: 10 авг 2004, 15:35
kas
Меня что-то смущает отсутсвие стандартного решения для реализации отношения один к одному или более.
Странно это...:roll:

Добавлено: 10 авг 2004, 15:51
Llama
kas, это не баг, эта фича. Такие вот стандартные отношения есть в иерархических БД... ИМХО в большинстве случаев SQL гораздо удобнее. Утверждаю это как человек портировавший приложение с иерархической базы на реляционную.

Добавлено: 21 авг 2004, 11:39
Andrej Ramaszeuski
kas писал(а):Меня что-то смущает отсутсвие стандартного решения для реализации отношения один к одному или более.
Странно это...:roll:
foreign key не катит?