|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Tolik Gusin 2:5020/400 10 Apr 2001 19:10:25 To : All Subject : Re: Дремина хитрость 2 -------------------------------------------------------------------------------- Hi Akzhan, Что бы не повторяться здесь, посмотри пожалуйста мой ответ Толику Тенцеру по этой же теме. > или как ноpмальные люди - SP на вставку. Это можно легко сделать в случае One Master-One Detail, а вот в случае One Master-Many Detail этот фокус уже не пройдет. > TG> 2) Есть у нас связка таблиц MASTER-DETAIL. Они связаны как > TG> One Master-Many Detail. Ввод данных осуществляеться одновременно > TG> в обе таблицы (то есть в одной форме, например ввод анкеты > TG> человека: MASTER(ФИО,Дата рождения), DETAIL(Места учебы)), и только > TG> тогда когда ввод будет окончен произойдет commit и таблица MASTER > TG> получит значение PK (IDENTITY). Hо ведь это значение MASTER.IDENTITY > TG> на нужно для ввода данных в DETAIL таблицы, а заранее получить его мы > TG> не можем. Отсюда два выхода: 1) Делать в MASTER пустую строку что бы > TG> получить значение ПК для MASTER, что бы использовать его в DETAIL. А > TG> потом делать update MASTER'a. 2) Делать отдельную таблицу для > TG> генерации ключей для MASTER таблицы (то есть делается имитация > TG> последовательностей как например в Oracle или > TG> генераторов как в IB). > или как делают ноpмальные люди - вставить запись в master, а затем, зная её > id, вставить записи в detail. Далеко не всегда можно разделить ввод в MASTER и DETAIL на две фазы. И пример когда это сделать нельзя (или очень не желательно) я привел выше. Что ты тогда будешь делать ? > TG> CREATE TABLE "DBA"."IDTABLE"( > TG> "TABLENAME" char(15) NOT NULL, > TG> "ID" integer NOT NULL, > TG> PRIMARY KEY ("TABLENAME")) > TG> SP которая увеличивает значение ПК для заданной таблицы и возвращает > TG> очередной ПК. Как видите с помощью ее я могу получить как одно > TG> значение ПК, так и пачку значений ПК. Вызываеться она до начала > TG> основной транзакции. > Я тоже думал об этом. Hо бесмысленно без аpхитектуpного обоснования. > Hа самом деле, не нужно хpанить TABLENAME. А назвать таблицу иначе - Objects. > И хpанить помимо Ида - дату и вpемя создания и автоpа. > > И все таблицы "наследовать" от таблицы Objects. Akzhan, тут мы с тобой говорим немного на разных яызках. ;) Мне до тебя с Тенцером и с вашими объектными таблицами и трехзвеньевыми приложениями еще расти и расти. У меня все гораздо проще и примитивнее. Поэтому если не сложно, то объясни пожалуйста что ты хотел сказать попроще. Hе нету у меня наследования таблиц. И заодно спрощу и у тебя: Как ты поступаешь в случаях описаных мной выше ? Как ты реализуешь, работаешь со связками One Master-Many Detail в случяе который я описал ? P.S. Перед ответом прочти сначала пожалуйста мое письмо по этой же теме Толику Тенцеру. -- С Уважением, Stalker E-mail: stalker732_4@yahoo.com stalker4@mail.ru FIDO: 2:464/732.4 ICQ: 28177787 Origin: The History is Dead --- ifmail v.2.15dev5 * Origin: Alkar Teleport News Server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/4083d7007e62.html, оценка из 5, голосов 10
|