Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2009, 07:24   #1
xabik
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 22
По умолчанию Отображение в lookup данных из разных таблиц

Доброго времени суток форумчане.

Такой вопрос:
есть основная таблица назовём её к примеру Таблица 1 в ней есть lookup поле
есть таблицы справочники Таблица 2 Таблица 3 (их больше на самом деле), которые содержат не менее 10000 значений

Требуется:
что бы в Таблица 1 в lookup поле отображались значения из разных таблиц при заранее известном совпадающем типе данных для соответствующих полей таблиц (конечно несколько некорректно с точки зрения теории реляционных бд но этого требует модель составленная на основе реального документа)

Все это должно работать под FIREBIRD и достаточно шустро.
xabik вне форума Ответить с цитированием
Старый 03.06.2009, 08:07   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Может конесно я не прав, но может стоит создать простой филд и запонять его тригером, а если это нужно в приложении то что мешает использовать для заполнения процедуру а не таблицу. Да и Union вроде не отменили ещё.

ЗЫ: хотя при таком подходе ИМХО стоит подумать не над тем как использовать, а над структурой БД

Последний раз редактировалось vovk; 03.06.2009 в 08:12.
vovk вне форума Ответить с цитированием
Старый 03.06.2009, 08:15   #3
xabik
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 22
По умолчанию

Это нужно в приложении.

Да с union вариант неплохой - но представьте что нужно объеденить несколько таблиц (10000 записей в каждой) передать всё это на клиентскую машину и всё из за того что необходимо заполнить одно поле.

При этом при внесении в один из справочников нового значения опять делать запрос с union
xabik вне форума Ответить с цитированием
Старый 03.06.2009, 08:22   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

в справочник новое значение всегда вносится отдельно, и желательно для этого предусмотреть отдельную процедуру. А выбор из нескольки справочников каждый из которых имеет не менее 1000 значений это как бы сказать .... ну неотимально чтоли.. может лучше присобачить формочку для внесения/изменения и там в отдельных компонентах будет гооооорааааздо легче организовать поиск нужного значения?

А если заранее известны критерии выбора, то процедура написаная в FB замечательно заменяет выбор из таблицы особенно если условия выбора сложные

Последний раз редактировалось vovk; 03.06.2009 в 08:29.
vovk вне форума Ответить с цитированием
Старый 03.06.2009, 09:15   #5
xabik
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 22
По умолчанию

Да я с этим полностью согласен... Но в Таблица 1 в поле хранится уникальный код, который соответствует одному из значений из одного из справочников (простите за каламбур).

И когда мы допустим открываем документ содержащий эту Таблицу 1 то хотелось бы видеть подстановочные значения, а не коды.

То есть примерно так: есть ли компонент типа DBGrid, который может использовать несколько lookup DataSource, а определять из какого DataSource отображать он должен по полю, в котором содержится код таблицы.

2- Таблица 2
3- Таблица 3
xabik вне форума Ответить с цитированием
Старый 03.06.2009, 09:24   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

вот по этому я и говорю, либо стоит пересмотреть структуру БД, либо по другому подойти к отображению данных.
Если несколько справочников надо отображать в 1 , то чем они отличаются?? если не отличаются то может собрать их в 1? А если отличаются то может предусмотреть в таблице их отличия? А отображать если только то это и в запросе предусмотреть можно
vovk вне форума Ответить с цитированием
Старый 03.06.2009, 09:40   #7
xabik
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 22
По умолчанию

Таблица 1 - отображает содержимое таблицы реального документа.
Строки таблицы содержат информацию о различных сущностях реального мира, некоторые атрибуты которых, совпадают допустим "наименование", "обозначение", которые и отображаются в основной таблице.
При всем при этом важен порядок строк в Таблица 1 т.к. они потом возможно будут меняться автоматизировано на основе других документов. В реальном документе номера строк не обозначены т.е. если и разбить основную таблицу на несколько то на каждую из вновь внесенных строк нужно будет пользователю считать какая это строка и вносить номер строки в отдельное поле. А если документ содержит до 1000 строк как быть?
xabik вне форума Ответить с цитированием
Старый 03.06.2009, 10:21   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Честно говоря мало что понял, слишком расплывчато.
Да и вообще запутался.. нельзя ли пояснее желательно с примерами?
Ну или в аску
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение слоёв с фиксированной высотой в разных браузерах st1512 HTML и CSS 2 19.05.2009 12:32
из двух разных таблиц в наименовании нужно выделить артикул повторяющийся в этих таблицах Екатерина Спирина Microsoft Office Excel 16 28.04.2009 01:07
Проблема отображение таблиц в IE, Opera! Sem999 HTML и CSS 4 22.04.2009 19:09
обмен данными из двух таблиц (одинаковой структуры) но в разных базах Tanuska___:) БД в Delphi 1 26.11.2008 19:41
поля из разных связных таблиц в одном dbgrid Geddar Помощь студентам 2 15.05.2008 16:57