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

Вниз

SQL + LookUp   Найти похожие ветки 

 
Sozon   (2005-11-27 22:29) [0]

В моей базе данных все делается через SQL (создание, уделение, редактирование записей). Так вот, нужно ли в таком случае создавать LookUp поля или просто пользоваться запросом типа:


SELECT v.otkuda, v.kuda, v.time, s.familia, s.name, s.car
FROM vizov v, sotrudnik s
where v.sotr_ID=s.sotr_ID


Поясняю в таблице vizov есть поле Sotr_ID, которое связано с полем Sotr_ID таблицы сотрудников Sotrudnik. И еще одно в будущем планируется эту базу сделать удаленной (InterBase). Заранее спасибо.


 
msguns ©   (2005-11-28 09:33) [1]

Непонятен смысл вопроса.
Зачем на клиенте нужен lookup, если запросом возвращается ФИО (я бы, кстати, делал немного иначе:

SELECT v.otkuda, v.kuda, v.time, s.familia+" "+s.name+" "+s.car as FIO
FROM vizov v Left Join sotrudnik s On (v.sotr_ID=s.sotr_ID)
 ORDER BY ...
)


 
ANB ©   (2005-11-28 09:38) [2]


> Sozon   (27.11.05 22:29)

Lookup может понадобиться, только если в гриде ты захочешь сделать выпадающий список. Штука довольно вредная, но иногда удобная, если БД небольшая и пользователей немного.


 
sozon   (2005-11-28 11:23) [3]

Я еще слышал, что в удаленных базах данных не рекомендуется использовать LookUp поля. Это правда?


 
Sergey13 ©   (2005-11-28 11:25) [4]

2[3] sozon   (28.11.05 11:23)
А аргументы ты там-же не слышал? Некоторые вот например считают, что использование гридов - отстой.


 
ANB ©   (2005-11-28 11:32) [5]


> sozon   (28.11.05 11:23) [3]
> Я еще слышал, что в удаленных базах данных не рекомендуется
> использовать LookUp поля. Это правда?

В принципе - ничего особо страшного, если все правильно настроить (включить кэширование справочных дейтасетов).


 
Lexer ©   (2005-11-28 11:36) [6]

В данном случае Lookup поля полезны, если часто меняется справочник сотрудников, например ФИО - заменили, а в таблице вызовов юзер видит новое значение без переотрытия этой таблицы.


 
Sergey13 ©   (2005-11-28 11:42) [7]

2[6] Lexer ©   (28.11.05 11:36)
Это как?


 
Lexer ©   (2005-11-28 11:49) [8]

Что как? Запросом достаем данные + из справочника коды, а значения справочников (ФИО) делаем лукап-полем. При изменении справочника - лукап покажет ново значение. А если достать запросом, то его придется переоткрыть.


 
Sergey13 ©   (2005-11-28 11:56) [9]

2[8] Lexer ©   (28.11.05 11:49)
> При изменении справочника - лукап покажет ново значение.
С чего бы это? От святого духа?


 
Lexer ©   (2005-11-28 12:01) [10]

Sergey13 ©   (28.11.05 11:56) [9]
>С чего бы это? От святого духа?

Нет слов...
Да от святой троицы Delphi, TDataSet и TDataSource.
Аминь.


 
Sergey13 ©   (2005-11-28 12:10) [11]

2 [10] Lexer ©   (28.11.05 12:01)
>Нет слов...
Аналогично.


 
evvcom ©   (2005-11-28 12:12) [12]


> Lexer ©

Ты забыл сказать, что лукап датасет все-таки придется переоткрыть, так что к святой троице надо еще добавить пару Close и Open.


 
msguns ©   (2005-11-28 12:13) [13]

>Lexer ©   (28.11.05 12:01) [10]
>Да от святой троицы Delphi, TDataSet и TDataSource.

Можно вопрос "из зала" ?
А каким образом эта "троица" прознает про то, что у Петрова Петра Петровича исправили отчество на Иванович ? Без переотерытия, ессно ?


 
Lexer ©   (2005-11-28 12:15) [14]

to evvcom, зачем переоткрывать? если все новые данные уже в нём после редактирования...
Изменили значение поля справочника - лукап покажет новое.


 
Sergey13 ©   (2005-11-28 12:26) [15]

2[14] Lexer ©   (28.11.05 12:15)
А если редактировали на другой машине? Речь то вроде про удаленные БД идет.


 
Lexer ©   (2005-11-28 12:32) [16]

Sergey13 ©   (28.11.05 12:26) [15]
А если редактировали на другой машине? Речь то вроде про удаленные БД идет.

Согласен, в этом случае не прокатит... Изменения не будут видны, придется переоткрывать справочник.
Можно использовать лукап, можно нет, всё зависит от ситуации. Например если в справочнике всего 5-10 записей. А получаемые данные чуть побольше, скажем 1000. То использование лукап позволит не тянуть с сервера на каждую запись "ФИО" - 1000 ФИО, а вытянуть всего 5 в справочник. В случае с интрнетом - экономия трафика.


 
msguns ©   (2005-11-28 12:56) [17]

>Lexer ©   (28.11.05 12:32) [16]
>Можно использовать лукап, можно нет, всё зависит от ситуации. Например если в справочнике всего 5-10 записей. А получаемые данные чуть побольше, скажем 1000.

Это как это ?

>То использование лукап позволит не тянуть с сервера на каждую запись "ФИО" - 1000 ФИО, а вытянуть всего 5 в справочник. В случае с интрнетом - экономия трафика.

кгхрм.. переведи..



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.041 c
4-1132430885
Serafim-s
2005-11-19 23:08
2006.01.29
Передача файлов по RS232


15-1136900715
V-A-V
2006-01-10 16:45
2006.01.29
Кэширование дисковода в Win XP


3-1133012302
начиннающий
2005-11-26 16:38
2006.01.29
eoAsyncExecute


15-1136313078
Nous Mellon_
2006-01-03 21:31
2006.01.29
Бездельничаю. Забава на смекалку.


6-1129746223
Black-Grin
2005-10-19 22:23
2006.01.29
NMFTP.LIST - виснет





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский