Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141

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

13.03.2021, 14:40. Показов 1928. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. У меня есть 2 таблицы: StaffVolunteer-волонтер и GroupStaffVolunteer.-группа волонтеров Один волонтер может состоять в нескольких группах, и группа состоит из нескольких волонтёров, следовательно, чтобы организовать группу волонтеров, нужно прибегнуть к связи многие-ко-многим.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2021, 14:40
Ответы с готовыми решениями:

Связь один ко многим или многие к многим
Добрового времени суток, помогите создать связь в SQL management studio. Значит есть одна таблица с названием "TypeOfDocuments"...

Связь многие-ко-многим
Здравствуйте! Какую ввести дополнительную сущность, чтобы избавиться от связи многие-ко-многим?

SQL и Связь многие ко многим
Здравствуйте гуру:Прошу помочь в написании запроса к следующим данным: есть 3-и таблицы связанные между собой ----------- 1)...

9
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
13.03.2021, 14:54  [ТС]
Как я поняла, я неправильно реализовала связь. Нужно еще добавить одну таблицу, в которой будет информация о группе (номер группы и название), а таблицу GroupStaffVolunteer превратить в связующую и оставить только поля (GroupID, StaffVolunteer).
Мой вопрос такой: в таблице SearchCampaign должен быть внешний ключ на группу волонтеров. На что мне нужно ссылаться? На таблицу с информацией о группе (номер группы и название) или на связующую таблицу? Подскажите пожалуйста.

Прикрепляю часть диаграммы БД
Миниатюры
Связь многие ко многим  
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,911
13.03.2021, 15:25
для m:n нужны 3 таблицы - две исходные и одна граничная. в граничной как минимум 2 FK и остальные филды по вкусу
0
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
13.03.2021, 15:31  [ТС]
Я создам 3-ю таблицу, будет: Группа - ГруппаВолонтеров - Волонтер. Тогда какую из этих таблиц мне связать с
SearchCampaign ?(SearchCampaign - таблица в которой хранится ин-фа о мероприятии, в котором участвует группа волонтеров). Я пробовала связать с таблицей связкой - не вышло, так как хочу связать одно поле с составным ключом
0
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
13.03.2021, 15:51  [ТС]
Какая связь верная?
Миниатюры
Связь многие ко многим  
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,911
14.03.2021, 12:10
зачем юзать составные ключи? кому они нужны?
0
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
14.03.2021, 12:42  [ТС]
Как зачем? Для реализации связи многие ко многим. Я так сделала
Миниатюры
Связь многие ко многим  
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,911
14.03.2021, 13:25
и в где здесь составные ключи? и зарадиля они нужны в граничной сущности? там два FK и все от слова совсем
0
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
14.03.2021, 13:40  [ТС]
Я читала, что в таблице не может быть 2 первичных ключа, поэтому, чтобы 2 поля были ключевыми, нужно создать составной ПК, в моем случае это (GroupID, StaffVolunteer).

Что вы имеете в виду под граничной сущностью?

Для чего я все это делаю: мне нужно создать группы волонтеров. Так как в группе может быть несколько волонтеров, а один волонтер может входить в несколько групп, я сделала связь многие-ко-многим через вспомогательную таблицу. Теперь мне нужно, чтобы информация о группе волонтеров была в таблицы SearchCompaign. Типо такая-то группа волонтеров участвует в поисковом мероприятии. Я установила связь, возможно не верно.

Я не утверждаю, что мой вариант верный, только ищу пути решения. Подскажите, как нужно тогда установить связи между таблицами, чтобы задуманная мною идея воплотилась в жизнь.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,911
14.03.2021, 13:47
граничная - это таблица, развязывающая m:n. Нафик там не нужен составной PK - достаточно суррогатного типа IDENTITY. Шоп не валялись orphan records настроить FK с каскадным удалением при удалении любой родительской записи. Если нужно на граничную сослаться еще еще откуда-нибудь - юзаем суррогатный ключ. И всех делов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2021, 13:47
Помогаю со студенческими работами здесь

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

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

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

Запрос на выборку многие к многим
Здравствуйте,помогите написать запрос на выборку есть БД из 3 х таблиц вот она:http://fotohosting.org/share.php?id=DA40_4EE912D3 ...

Ограничение целостности в связи многие ко многим
есть 3 таблицы: 1)Заказ (OrderId, и другие поля) 2)Продукты(ProductId,Price и другие поля) ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru