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

Откуда:
Сообщений: 192
Есть 3 таблицы: Course, Teacher, Student.

Нужно эти таблицы связать между собой: Course-Teacher, Course-Student с взаимодействием многие-ко-многим (на 1 курс может записаться много студентов, 1 студент может записаться на много курсов и.т.д.). У всех 3-х таблиц первичный ключ - ID (nvarchar(20)).

Создал 2 связующие таблицы с 2-мя ID (Course.ID, Teacher.ID) и (Course.ID, Student.ID). Связал данные таблицы между собой.

При добавление данных в таблицы Course-Teacher, Course-Student данные должны дублироваться в связующей таблице, чего не происходит. Может что неправильно делаю? Подскажите, возможно проблема с ключами?

СУБД: SQL Server 2008 R2
22 янв 12, 00:01    [11946616]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
MIRNIY
При добавление данных в таблицы Course-Teacher, Course-Student данные должны дублироваться в связующей таблице, чего не происходит.
С чего это вдруг?
22 янв 12, 00:07    [11946634]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
MIRNIY
Member

Откуда:
Сообщений: 192
Гавриленко Сергей Алексеевич,

всё таки таблицы имеют связи...
22 янв 12, 09:34    [11946945]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
MIRNIY
Гавриленко Сергей Алексеевич,

всё таки таблицы имеют связи...
FK обеспечивает DRI. Ничего никуда автоматом добавляться не будет.
22 янв 12, 09:44    [11946953]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
MIRNIY, сделайте одну таблицу (course_id, teacher_id, student_id) и ваши мучения исчезнут.
22 янв 12, 10:15    [11946976]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
MIRNIY
Гавриленко Сергей Алексеевич,

всё таки таблицы имеют связи...
Связи, это ограничения, задача которых именно ограничивать от того, чтобы в таблицах не было неконсистентных данных. В отдельных случаях эти ограничения могут удалять или изменять, но добавлять что-то куда-то они не будут.
22 янв 12, 11:24    [11947027]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
MIRNIY
Member

Откуда:
Сообщений: 192
Гавриленко Сергей Алексеевич,

А как сделать связть "Многие-ко-многим"?
22 янв 12, 11:44    [11947047]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
MIRNIY
Гавриленко Сергей Алексеевич,

А как сделать связть "Многие-ко-многим"?
Через промежуточную таблицу. Сказали же.
22 янв 12, 12:21    [11947098]     Ответить | Цитировать Сообщить модератору
 Re: Связи между таблицами  [new]
MIRNIY
Member

Откуда:
Сообщений: 192
последний вопрос, после можно закрывать тему:
- как/куда/где отобразить, например запись студента (таб. Student) на курс (таб. Course)?
22 янв 12, 18:37    [11948062]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить