Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Типы связей  [new]
avokado133
Member

Откуда:
Сообщений: 1
Здравствуйте! Начал изучать SQL, вроде бы пока все понятно, но есть одна проблема. Мне задано создать БД студентов, групп и кафедр, это я сделал, теперь мне еще добавили создать таблицы с хобби и номерами студентов. Это я тоже, собственно, сделал, но мне говорят что это не правильно, ибо для таблицы "Номера" должна быть связь "Один-ко-многим", что у студентов может быть несколько номеров, а в таблице "Хобби" должна быть связь "многие-ко-многим", и должна она быть сделана через промежуточную таблицу, а еще якобы в таблице с номерами должно быть два primary key сделанные через constraint, однако SQL выводит ошибку.
Не могли бы вы на пальцах разъяснить эти связи?
11 фев 18, 13:30    [21183204]     Ответить | Цитировать Сообщить модератору
 Re: Типы связей  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5115
1. есть отдельный форум по проектированию БД тут
2. нормально опишите задачу (например, что это за номера студентов которых может быть несколько у одного)
3. приведите ваше решение (схему БД картинкой)
4. напишите с чем конкретно у вас проблема (вопрос "сто такое многие ко многим" задать можно, но с большой вероятностью вы получите ответ "читай доку")
5. если вы получаете какие-то ошибки, пишите конкретно где вы их получили (какой фреймворк\клиент, какой версии), в результате каких ваших действий и приводите полный текст ошибки.
11 фев 18, 14:45    [21183329]     Ответить | Цитировать Сообщить модератору
 Re: Типы связей  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4176
avokado133
Здравствуйте! Начал изучать SQL, вроде бы пока все понятно, но есть одна проблема. Мне задано создать БД студентов, групп и кафедр, это я сделал, теперь мне еще добавили создать таблицы с хобби и номерами студентов. Это я тоже, собственно, сделал, но мне говорят что это не правильно, ибо для таблицы "Номера" должна быть связь "Один-ко-многим", что у студентов может быть несколько номеров, а в таблице "Хобби" должна быть связь "многие-ко-многим", и должна она быть сделана через промежуточную таблицу, а еще якобы в таблице с номерами должно быть два primary key сделанные через constraint, однако SQL выводит ошибку.
Не могли бы вы на пальцах разъяснить эти связи?


https://habrahabr.ru/post/145381/
11 фев 18, 17:48    [21183545]     Ответить | Цитировать Сообщить модератору
 Re: Типы связей  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
avokado133
Здравствуйте! Начал изучать SQL, вроде бы пока все понятно, но есть одна проблема. Мне задано создать БД студентов, групп и кафедр, это я сделал, теперь мне еще добавили создать таблицы с хобби и номерами студентов. Это я тоже, собственно, сделал, но мне говорят что это не правильно, ибо для таблицы "Номера" должна быть связь "Один-ко-многим", что у студентов может быть несколько номеров, а в таблице "Хобби" должна быть связь "многие-ко-многим", и должна она быть сделана через промежуточную таблицу, а еще якобы в таблице с номерами должно быть два primary key сделанные через constraint, однако SQL выводит ошибку.
Не могли бы вы на пальцах разъяснить эти связи?

Номера студентов - это их рейтинг. В каком-либо предмете. И может быть так, что студентов Иванов student_id=1 имеет рейтинг 1 local_rating_id=1 по предмету биология subject_study_id=1 и рейтинг 3 local_rating_id=3 по предмету история subject_study_id=4.
Итого таблица рейтингов содержит колонки предмета subject_study_id, студента student_id и рейтинга по предмету local_rating_id.
Очевидно, что нужно обеспечить уникальность сочетаний local_rating_id и subject_study_id (для каждого предмета может быть только один 1-й студент по успеваемости и один 2-й студент и так далее, то есть рейтинги локальные для предмета уникальные).
И уникальность сочетаний student_id и subject_study_id (каждый студент может по любому предмету иметь только одно место в рейтинге).
Поэтому сделать нужно через два constraint.
11 фев 18, 22:17    [21183908]     Ответить | Цитировать Сообщить модератору
 Re: Типы связей  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4176
avokado133
Здравствуйте! Начал изучать SQL, вроде бы пока все понятно, но есть одна проблема. Мне задано создать БД студентов, групп и кафедр, это я сделал, теперь мне еще добавили создать таблицы с хобби и номерами студентов. Это я тоже, собственно, сделал, но мне говорят что это не правильно, ибо для таблицы "Номера" должна быть связь "Один-ко-многим", что у студентов может быть несколько номеров, а в таблице "Хобби" должна быть связь "многие-ко-многим", и должна она быть сделана через промежуточную таблицу, а еще якобы в таблице с номерами должно быть два primary key сделанные через constraint, однако SQL выводит ошибку.
Не могли бы вы на пальцах разъяснить эти связи?


"теперь мне еще добавили создать таблицы с хоббями и номерами студентов"

12 фев 18, 11:15    [21184771]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить