0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24
1

Связь "Многие ко многим"

22.08.2016, 09:54. Показов 1191. Ответов 8

Ребята, вроде тема простая, но что то я ломаю голову, короче:
Создаю базу данных для врачей и клиник. Клиника имеет много специальностей, так же как и одна специальность имеет много клиник...связи многие ко многим...но как это реализовать, а особенно как это вывести..??? Специальности стоят в левой колонке (как категории), надеюсь смысл вы поняли...если что попробую объяснить подробней.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2016, 09:54
Ответы с готовыми решениями:

Реализовать связь "многие-ко-многим"
Всем привет, нужна ваша помощь. Есть следующие таблицы: Aktery(kod_aktera, akt_fio)...

Связь "Многие-ко-многим"
Поясните, пожалуйста, как принято называть таблицу, которая связывает две другие в связи...

Связь многие ко многим
Есть 3 таблицы: Таким запросом всё как - бы отлично выводится как мне надо книга и под ней...

Связь многие-ко-многим
Здравствуйте. Подскажите, пожалуйста, для организации связи "многие-ко-многим" обязательна...

8
Zero day
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
22.08.2016, 10:24 2
АндрейПершин, у тебя есть клиники - специальности - врачи.
Получается 3 таблицы, связаны по типу многие-к-многим. Нужны еще 2 связующие таблицы. Я бы сделал так:
Клиники и Специальности связал через таблицу, по которой можно было бы отследить, какие специалисты есть в клинике и сколько их, т.е., например были бы 2 записи для клиники "А" со специальностью "Терапевт", значит в клинике "А" - 2 терапевта.
Специальности и врачи я бы связывал также через промежуточную таблицу. Связывал исходя из того, что один врач может иметь две специальности.
Вот это не очень понятно:
Цитата Сообщение от АндрейПершин Посмотреть сообщение
Специальности стоят в левой колонке (как категории)
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24
22.08.2016, 10:44  [ТС] 3
Meridian21, это визуализация....на сайте слева выберается специальность и должны вывестись все клиники данной специальности. С врачами проще, они имеют одну специальность, поэтому все в одной таблицы "врачи", с выводом никаких проблем, а вот каждая клиника может иметь несколько специальностей, тут уже загвоздка...Выводится то по одному критерию(специальность), а через запятю нельзя же писать в базу)) было бы удобно)
0
Zero day
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
22.08.2016, 10:59 4
АндрейПершин, видимо говорим немного о разных вещах.
Цитата Сообщение от АндрейПершин Посмотреть сообщение
вот каждая клиника может иметь несколько специальностей
Что такое специальность клиники? Типа есть клиника "Хирургов", есть клиника "Окулистов", есть клиника с "Хирургами и окулистами"?
0
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
22.08.2016, 11:21 5
Цитата Сообщение от Meridian21 Посмотреть сообщение
Что такое специальность клиники?
в клинике может работать и хирург, и окулист. А может и не работать. Поэтому и надо записать, в какой клинике кто работает.
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24
22.08.2016, 11:52  [ТС] 6
Meridian21, Например: Хирургия, гинекология, диагностика, кардиология и тд.....и вот одна клиника может иметь специальность просто хирургия, а другая все специальности вместе.
0
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
22.08.2016, 12:34 7
Есть таблица клиник TABK(k_id, ...), есть таблица специализаций TABS (s_id,...)
Чтобы их связать, требуется таблица "клиника-специализация" TABKS(k_id, s_id, ...)
Тогда запрос "какие специализации есть в клинике":
MySQL
1
2
3
4
select s.* 
from tabKS ks 
join tabS s on s.s_id=ks.s_id
where ks.k_id=...
Аналогично, "в каких клиниках есть специализация":
MySQL
1
2
3
4
select k.* 
from tabKS ks 
join tabK k on k.k_id=ks.k_id
where ks.s_id=...
0
Zero day
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
22.08.2016, 14:00 8
АндрейПершин, раз есть многофункциональные клиники (с несколькими специалистами), то тогда нужна реализация через связующую таблицу. Просто у одних клиник будет одна запись в ней (там где одна специальность), а у некоторых много (если несколько специальностей). Возможно пригодится поле-признак, указывающее на кол-во специальностей у клиники (зависит от того, что делается с данными).
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24
22.08.2016, 14:04  [ТС] 9
Ребят спасибо всем большое, кажется, разобрался. Отдельно создал таблицу со специальностями и связующую таблицу. В колонку слева специальности вывел, теперь осталось сделать правильно поиск и переходы, ну тут я и сам смогу)))

Добавлено через 44 секунды
cygapb-007, Отдельное спасибо за запрос, уже давно не сталкивался с ним и забыл)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2016, 14:04

Связь "один-ко-многим"
Каким скриптом установить связь "один-ко-многим"? CREATE DATABASE Uspevaimost;   USE...

Связь многие к одному/ один к многим
Вот не могу понять эти связи, как они действуют. Например у меня есть две таблицы: Автомобиль ...

Запрос Многие-ко-Многим ( связь большого количества таблиц)
К таблице Application нужно как то прикрепить некоторое оборудование, нужно получить название или...

Обновление данных таблицы на основе запроса (связь многие-ко-многим)
Доброго времени суток, дорогие форумчане. Появилась проблема. Есть у меня таблица sklad ...

Связь many to many между таблицами "Товар" и "Заказ"
Есть две таблицы, "Товар" и "Заказ". Один заказ может иметь много разных и одинаковых товаров(надо...

Плюсы и минусы связи "один ко многим"?
Опешите плюсы и минусы связи "один ко многим"?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.