Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
логика запроса при связи "много ко многим" (Александр) 10/07/2006 - 22:39:47
      Re: логика запроса при связи (Dinky) 11/07/2006 - 00:01:11
      Re: логика запроса при связи (Александр) 11/07/2006 - 16:12:46
      Re: логика запроса при связи (bac) 11/07/2006 - 19:52:40
      Re: логика запроса при связи (Александр) 12/07/2006 - 19:09:24
      Re: логика запроса при связи (Dinky) 12/07/2006 - 19:26:57
      Re: логика запроса при связи (Александр) 13/07/2006 - 14:47:06
      Re: логика запроса при связи (Dinky) 13/07/2006 - 23:35:55

> Original message text:
> From: Александр - 10/07/2006 - 22:39:47
> Subject:логика запроса при связи "много ко многим"
> -----------------
> Здравствуйте, кто читает!
> Пишу БД по природоохранным мероприятиям, там связи почти всех таблиц типа "многие ко многим". Напр., проекты (PROJECT), охраняемые виды (SPECIES) и пересечение (PR_SP). Для поиска проектов по названиям охраняемых видов составил такой запрос:
> select p.name, p.exec_org, p.result //название, исполнитель и
> //результаты проекта
> from project as p, species, pr_sp
> where p.pr_id = pr_sp.pr_id //идентификаторы проекта равны в
> //табл. собственно проекта и
> //пересечения
> and species.name like 'посланная переменная из формы'
> and species.sp_id = pr_sp.sp_id //идентификаторы вида равны в
> //табл. собственно проекта и
> //пересечения
> Запрос работает, но как представлю, сколько "and" будет в более сложных вариантах типа поиска одновременно по 5-6 критериям, то подозреваю, что это не лучшее решение. Есть ли более оптимпльные варианты?
>


From: Александр - 13/07/2006 - 14:47:06
Subject:логика запроса при связи
-----------------
Обижаете, сэр! Цитирую:

"1.9.4.5 Внешние ключи

Следует учитывать, что в SQL внешние ключи используются не для объединения таблиц, а главным образом для проверки целостности ссылочных данных (ограничения внешних ключей). Если необходимо получить результаты из большого количества таблиц от команды SELECT, следует делать это через объединение таблиц."

А мне нужно именно объединение таблиц, что я довольно успешно делаю запросами, как показано в моём первом посте на эту тему. Просто, вдруг чего не понял, потому и пишу. То, что длиннющие запросы с множеством AND вполне нормальны, я уже выяснил (это я сначала и спрашивал). А вот можно ли сделать так, чтобы при внесении новой записи в одну таблицу ID этой записи АВТОМАТИЧЕСКИ вносился бы и в связанную с ней (напр., таблицу пересечений), я не знаю. Подозреваю, что нет, и придётся организовать эту зависимость в php. В примере из "3.5.6 Использование внешних ключей" со шмотками и их владельцами делаются INSERT-ы в обе связанных таблицы, что подтверждает мои подозрения.
Правда, я мог чего-то не понять, но не понять и принципиально не читать руковводства - это разные вещи. Так что, если есть возможность с помощью внешних ключей или как-то ещё автоматизировать внесение записей в несколько таблиц - напишите, пожалуйста, нет - тоже сообщите, если не трудно. Тогда перестану мучать форум, Гугл и Яндекс своими запросами и попытаюсь родить соответствующую функцию на php.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
29136



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |