Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> relationships или field lookup, что продуктивней? философский вопрос 
V
    Опции темы
aleksh
Дата 11.8.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 2
Всего: 13



столкнулся со следующей ситуацией: на работе таблицы редко связывают, если надо показать данные из разных таблиц в одной сетке, то просто создается в квери филд лукап.

отсюда и вопрос: когда лучше связывать таблицы, а когда и простым лукапом обойтись?

уточню: на работе вряд ли что изменится, спрашиваю "для себя", "на будущее" так сказать, поэтому минимум конкретики, субд значения не имеет.

если у кого то был показательный случай, где одно решение было явно продуктивней другого -- прошу поделится опытом.
PM MAIL   Вверх
while
Дата 12.8.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.7.2008

Репутация: нет
Всего: нет



Если "клиент-сервер", то конечно "связывание" вида xxxx join, где xxxx - left, right, inner будет эффективнее (при условии, что отсительное быстродействие "сервера" > клиентского). Тем более, что "связывание" бывает разным...

А для сравнения нужен пример с типом СУБД, примером задачи и т.п....
PM MAIL   Вверх
aleksh
Дата 15.8.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 2
Всего: 13



под связыванием подразумеваю то, что в MS SQL завется relationships-ом
понимаю, сравнение вещь не благодарная, естественно, можно найти в сети тесты, "стандарты" проверки производительности, попрогонять это все и посмотреть на результат, но здесь другой случай (честно признался -- вопрос философский), к тому же они довольно "громоздки"

по большому счету, сталкивался только с одной субд -- на работе, но здесь и тесты провести не так легко, да и опробывать что-то новое проблематично, вот и подумал, может кто-то расскажет о подводных камнях связанных с сабжем в реализациях клиентов для субд
PM MAIL   Вверх
solenko
Дата 15.8.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



relationships позволяют обеспечить целостность данных и с отображением не связаны абсолютно. Простой пример -- авторы и книги. При правильно прописанных зависимостях СУБД не даст удалить автора, у которого есть книги или, при его удалении, удалит все книги этого автора (зависит от типа связи)


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Akella
Дата 15.8.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



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

Это сообщение отредактировал(а) Akella - 15.8.2008, 12:23
PM MAIL   Вверх
solenko
Дата 15.8.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Akella, каким образом связаны ЛОГИЧЕСКОЕ объединение на уровне СУБД и интерфейс?!!


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Akella
Дата 15.8.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



да вот как раз я и имел ввиду, что НЕ на уровне СУБД, а на уровне компонентов доступа или же сразу грида.
PM MAIL   Вверх
aleksh
Дата 15.8.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 2
Всего: 13



toAkella: а можно пример, какие именно гриды так делают?

хорошо, с целью избежания кривотолков попробую переформулировать вопрос: сталкивался ли кто либо с показательными случаями когда хранить "бизнес-логику" было целесообразнее (или продуктивнее) в субд, чем в "клиенте" (и наоборот), или возникали ли в таких ситуациях неожиданные сложности при реализации "клиентов".

еще раз уточню: конкретный пример не приведу, ибо все возникавшие затрудния решались, топик 
Цитата(aleksh @  11.8.2008,  14:06 Найти цитируемый пост)
 спрашиваю "для себя", "на будущее" так сказать

хочется "експиренса" набрать не только путем "проб и ошибок"
PM MAIL   Вверх
solenko
Дата 15.8.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



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

relationships -- это не хранение бизнес логики. это обеспечение целостности данных. ее можно контролировать на клиенте и надеятся, что ни один програмер не забудет поставить проверку, например, на существование связанных записей перед удалением. А можно при проектировании базы прописать зависимости и нерадивый програмер получит exception вместо подвисших в невесомости данных.

То, о чем говорит Akella, не имеет никакого отношения к relationships. Есть они или нет -- для отображения вам все равно прийдется делать lookup. Возможно, некоторые среды разроботки сделают это за вас автомаотом, но сути это не меняет.

Это сообщение отредактировал(а) solenko - 15.8.2008, 13:59


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
aleksh
Дата 15.8.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 2
Всего: 13



ладно, видимо я сам не до конца понял что хотел узнать (но ведь честно об это сразу предупредил :) ), с таким же успехом, наверное, можно было спросить об преимуществах толщины клиентов...

итог прост: надо контролировать программистов
можно писать инструкции, сделать так, чтобы они постоянно между собой общались, чтоб был человек который мог бы уточнить "неточности", и тогда, если будут хорошие тестеры -- все будет хорошо, несмотря ни на что... а все остальное -- тонкости конкретной реализации

спасибо за ответы

p.s. пойду искать гриды, о которых Akella говорил...

Добавлено через 9 минут и 54 секунды
забыл галочку...
PM MAIL   Вверх
Akella
Дата 18.8.2008, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



Цитата(aleksh @  15.8.2008,  12:55 Найти цитируемый пост)
toAkella: а можно пример, какие именно гриды так делают?

про стандартный не знаю, а вот DBGridEh делает, cxGrid делает, думаю, что все более менее продвинутые гриды умеют определять лукап поля и выводить комбобокс.

Добавлено через 9 минут и 25 секунд
да и не только комбобокс, если поле типа дата, то вываливается календарь
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0842 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.