Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FIBPlus + префикс MAS


Mitrofan ©   (2004-07-05 10:42:00) 

Как быть если у таблицы имеется две или более master таблицы?
Как при этом будет выглядеть работа с префиксом MAS?

Заранее спасибо.


Курдль   (2004-07-05 13:12:00) [1]


> Deniz ©   (05.07.04 12:55) [15]
> Немного не так выразился, "удачный" имелось в виду более
> легкий для автора и судя по вопросу, ему легче разобраться
> с lookup полями

Возможно, Вы правы... А возможно - не совсем. Привыкнет человек оперировать категориями "мастер/деталь" вместо "один-ко-многим", "лукап-поля" вместо "соединения" и т.п.
Жаль, что так мало книжек, где программированию учат по блок-схемам алгоритмов, а работе с СУБД - по концептуальным моделям...
Вот я убился, пока нашел хоть скольк-нибудь потребных книг про "Кролика" :(


Deniz   (2004-07-05 12:55:00) [2]

> Курдль ©   (05.07.04 12:28) [13]
Немного не так выразился, "удачный" имелось в виду более легкий для автора и судя по вопросу, ему легче разобраться с lookup полями(ведь это тоже надо знать), чем настраивать обновления/редактирования/добавления, а пройдет немного времени и все будет нормально с запросами.


Соловьев   (2004-07-05 12:31:00) [3]

Если это справочники, то они как правило закачиваются на клиента - на то они и справочники. А тут как раз можно и лукап использовать. А если это большие таблицы, то конечно надо в скл связывать лукап поля.


Курдль   (2004-07-05 12:28:00) [4]


> Первый вариант более удачный на мой взгляд.

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


Deniz   (2004-07-05 12:22:00) [5]

>Mitrofan см. Соловьев ©   (05.07.04 11:41) [7]
Если не понятно, то могу предположить, что тебе надо редактировать поле "Поле1" в "Таблица1", причем данные в этом поле должны соотв. одному значению из "Справочник1". Аналогично с "Поле2" и "Справочник2".
Варианты решения:
1. Соловьев ©   (05.07.04 11:07) [3]
2.
select spr1.name name1, t1."поле1", spr2.name name2, t1."поле2", ...
from "таблица1" t1 inner join "справочник1" spr1 on (spr1.id = t1."поле1")
 inner join "справочник2" spr2 on (spr2.id = t1."поле2")
order by ...

показывать(например в grid'е) нужные поля, а редактировать только поля из "таблица1" и сразу после редактирования/вставки "таблица1".refresh.
Первый вариант более удачный на мой взгляд.


Соловьев   (2004-07-05 12:10:00) [6]


> Абсолютно точно Вы подметили

А я подмечу что у Вас перепутаны понятия мастера и детайла :)


> но уверен, что есть другой выход.

вот именно :)


Курдль   (2004-07-05 12:07:00) [7]

Это хорошо. Теперь самое главное: А ЧТО НАДО-ТО? :)))
Про префикс MAS не имею ни малейшего представления, но уверен, что есть другой выход.


Mitrofan   (2004-07-05 11:57:00) [8]

2 Курдль
 Абсолютно точно Вы подметили


Курдль   (2004-07-05 11:42:00) [9]

А можно хоть чуть-чуть ближе к терминологии БД.
Например:
Имеем ТАБЛИЦУ_1 и СПРАВОЧНИК_1, СПРАВОЧНИК_2
ТАБЛИЦА_1 имеет отношение "много-к-одному" к СПРАВОЧНИК_1
ТАБЛИЦА_1 имеет отношение "много-к-одному" к СПРАВОЧНИК_2

Так?


Соловьев   (2004-07-05 11:41:00) [10]

вообще-то тут все понятно :)
MAS тут не причем, так как у него не данные мастера нужны, а детайла. А для этого или руцями прописывать, или использовать [3].
P.S. префикс MAS_ использует данные из TFIBDataSet.DataSource. Т.е. если бы и была бы связь с несколькими мастерами, то MAS_ тут бы не помог.


Johnmen   (2004-07-05 11:35:00) [11]

Нет. Т.к. ничего не сказано про реализацию ссылок.


Mitrofan   (2004-07-05 11:22:00) [12]

Имеем Справочник1 и Справочник2
Имеем Таблица1
Две ссылки означает следующее.
В Таблице1 есть два поля: Поле1 и Поле2 в которых хранятся
идентификаторы из Справочник1 и Справочник2
Теперь понятнее ?


Johnmen   (2004-07-05 11:13:00) [13]

>имеется две ссылки

Это что, как и где ?


Соловьев   (2004-07-05 11:07:00) [14]

LookUp fields+F1


Mitrofan   (2004-07-05 10:52:00) [15]

Как я понимаю мастер таблица это к примеру справочник.
А делайл это таблица в которой есть ссылка на этот справочник.
Так вот теперь есть таблица, в которой имеется две ссылки на два справочника.


Соловьев   (2004-07-05 10:44:00) [16]

может не мастер, а детайл?


Наверх

Титульная страница Поиск, карта сайта Написать письмо