LINUX.ORG.RU

[бд]связь один-ко-многим

 


0

1

Глупый вопрос, понимаю, но как реализовать в таблице связь один-ко-многим? Например, у одного человека несколько назначений. Моя глупость предлагает только такие решения:
* хранить списком индексов (но mysql же не поддерживает тип данных - список чисел-индексов)
* добавить в таблицу необходимое количество столбцов для каждой связи. (но заранее это количествто неизвестно. да и вобще криво как-то)

оба варианта кривые, но лучше-то сделать?

★★

только это связь «многие ко многим»
делается через промежуточную таблицу

таблица: список людей
таблица: список назначений
промежуточная таблица: назначения людей

anonymous_sapiens ★★★★★
()
Ответ на: комментарий от note173

не, тут назначения у разных людей не пересекаются в принципе. а за доп. таблицу спасибо!

bik ★★
() автор топика

У тебя ManyToMany, а не OneToMany.

Person       PersonFunction         Function
------       --------------         --------
* id     ->  * idPerson       ->    *id
...          * idFunction
urxvt ★★★★★
()
Ответ на: комментарий от bik

Тогда в таблице назначений завести поле idPerson и в нем хранить кому это назначение принадлежит. Чем не подходит?

urxvt ★★★★★
()

> У одного человека несколько назначений

В таблице назначений добавить поле - ID человека. В таблице людей никаких списков, столбцов и т.д. не добавлять. Все назначения для конкретного человека впоследствии можно будет извлечь или обработать одним запросом.

amomymous ★★★
()
Ответ на: комментарий от amomymous

Всем спасибо! вопрос и правда был глупый

bik ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.