![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
aleksh |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
столкнулся со следующей ситуацией: на работе таблицы редко связывают, если надо показать данные из разных таблиц в одной сетке, то просто создается в квери филд лукап.
отсюда и вопрос: когда лучше связывать таблицы, а когда и простым лукапом обойтись? уточню: на работе вряд ли что изменится, спрашиваю "для себя", "на будущее" так сказать, поэтому минимум конкретики, субд значения не имеет. если у кого то был показательный случай, где одно решение было явно продуктивней другого -- прошу поделится опытом. |
|||
|
||||
while |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.7.2008 Репутация: нет Всего: нет |
Если "клиент-сервер", то конечно "связывание" вида xxxx join, где xxxx - left, right, inner будет эффективнее (при условии, что отсительное быстродействие "сервера" > клиентского). Тем более, что "связывание" бывает разным...
А для сравнения нужен пример с типом СУБД, примером задачи и т.п.... |
|||
|
||||
aleksh |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
под связыванием подразумеваю то, что в MS SQL завется relationships-ом
понимаю, сравнение вещь не благодарная, естественно, можно найти в сети тесты, "стандарты" проверки производительности, попрогонять это все и посмотреть на результат, но здесь другой случай (честно признался -- вопрос философский), к тому же они довольно "громоздки" по большому счету, сталкивался только с одной субд -- на работе, но здесь и тесты провести не так легко, да и опробывать что-то новое проблематично, вот и подумал, может кто-то расскажет о подводных камнях связанных с сабжем в реализациях клиентов для субд |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 67 |
relationships позволяют обеспечить целостность данных и с отображением не связаны абсолютно. Простой пример -- авторы и книги. При правильно прописанных зависимостях СУБД не даст удалить автора, у которого есть книги или, при его удалении, удалит все книги этого автора (зависит от типа связи)
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
Если нужно редактировать данные прямо в гриде, то лукап-поля лучше, т.к. некоторые гриды сразу вставляют для таких полей выпадающие списки.
Это сообщение отредактировал(а) Akella - 15.8.2008, 12:23 |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 67 |
Akella, каким образом связаны ЛОГИЧЕСКОЕ объединение на уровне СУБД и интерфейс?!!
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
да вот как раз я и имел ввиду, что НЕ на уровне СУБД, а на уровне компонентов доступа или же сразу грида.
|
|||
|
||||
aleksh |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
toAkella: а можно пример, какие именно гриды так делают?
хорошо, с целью избежания кривотолков попробую переформулировать вопрос: сталкивался ли кто либо с показательными случаями когда хранить "бизнес-логику" было целесообразнее (или продуктивнее) в субд, чем в "клиенте" (и наоборот), или возникали ли в таких ситуациях неожиданные сложности при реализации "клиентов". еще раз уточню: конкретный пример не приведу, ибо все возникавшие затрудния решались, топик хочется "експиренса" набрать не только путем "проб и ошибок" |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 67 |
aleksh, хранить бизнес логику в СУБД очень выгодно при наличии большого количества разнообразных клиентов, также, при борьбе за тонкого клиента. Например, с нашей базой работают из десктопного приложения, из веба, с мобильных клиентов и еще бог знает чего.
relationships -- это не хранение бизнес логики. это обеспечение целостности данных. ее можно контролировать на клиенте и надеятся, что ни один програмер не забудет поставить проверку, например, на существование связанных записей перед удалением. А можно при проектировании базы прописать зависимости и нерадивый програмер получит exception вместо подвисших в невесомости данных. То, о чем говорит Akella, не имеет никакого отношения к relationships. Есть они или нет -- для отображения вам все равно прийдется делать lookup. Возможно, некоторые среды разроботки сделают это за вас автомаотом, но сути это не меняет. Это сообщение отредактировал(а) solenko - 15.8.2008, 13:59 -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
aleksh |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
ладно, видимо я сам не до конца понял что хотел узнать (но ведь честно об это сразу предупредил :) ), с таким же успехом, наверное, можно было спросить об преимуществах толщины клиентов...
итог прост: надо контролировать программистов можно писать инструкции, сделать так, чтобы они постоянно между собой общались, чтоб был человек который мог бы уточнить "неточности", и тогда, если будут хорошие тестеры -- все будет хорошо, несмотря ни на что... а все остальное -- тонкости конкретной реализации спасибо за ответы p.s. пойду искать гриды, о которых Akella говорил... Добавлено через 9 минут и 54 секунды забыл галочку... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
про стандартный не знаю, а вот DBGridEh делает, cxGrid делает, думаю, что все более менее продвинутые гриды умеют определять лукап поля и выводить комбобокс. Добавлено через 9 минут и 25 секунд да и не только комбобокс, если поле типа дата, то вываливается календарь |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |