[mysql]многие ко многим - вопрос в сообщении

iakobi91

Есть список тренеров и список тренингов. Каждый тренер может проводить несколько тренингов, и, соответственно каждый тренинг могут вести несколько тренеров. Как поумнее реализовать связь между тренерами и тренингами,
Единственное, что придумал, "графически" реализуецца в виде двумерной таблицы тренеры х тренинги, где в ячейке [тренер, тренинг] их связь (0/1). Если делать таблицу в бдпо типу: строка соответствует тренеру, столбец тренингу, то при добавлении/удалении тренинга надо вставлять/удалять столбец в таблице. Разумно ли это?

Andbar

изврат.
быстрее было бы сделать таблицу связи номер тренера - номер тренинга
А то изменение стуктуры таблицы - страшно медленная операция, по идее.

ppplva


Почитай умные книжки сначала, а потом уже базы проектируй.

bleyman

Связь многие ко многим реализуется при помощи вспомогательной таблицы вида

create table TeachersToSubjects (
   TeacherId int not null,
   SubjectId int not null,
   constraint PK_TEACHERSTOSUBJECTS primary key (TeacherId, SubjectId)
)
go
alter table TeachersToSubjects
   add constraint FK_TEACHERS_REF8_TEACHERS foreign key (TeacherId)
     references Teachers (Id)
     on update cascade on delete cascade
go
alter table TeachersToSubjects
   add constraint FK_TEACHERS_REF7_SUBJECTS foreign key (SubjectId)
     references Subjects (Id)
     on update cascade on delete cascade
go

kruzer25

Что за тупняк?
Чем плоха таблица LinkID, TrenerID, TreningID?
Оставить комментарий
Имя или ник:
Комментарий: