Шаг 116 - Связи один ко многим

Довольно часто распространена связь. Понять смысл ее можно представив таблицу сотрудники и таблицу подразделения.

116_1.gif (3992 b)

Видите, одной записи гараж соответствует много записей людей. Это и есть соотношение один ко многим (1:M). Идея реализации данной связи заключается в следующем. У нас в таблице подразделения есть ключевое поле (ID) которое в данной таблице первичный ключ. На рисунке это запись с номером два. Этой записи может соответствовать много записей в таблице сотрудники. Значит в таблицу сотрудники нужно создать поле в котором будет находиться первичный ключ таблицы подразделения. Здесь некоторая обратная логика. Вроде как по нормальной житейской логике люди находятся в подразделениях. Подразделение как бы основной объект, главный, а люди второстепенный объект. Кажется, что нужно включать людей в подразделения.

116_2.gif (1470 b)

Но стоит разобраться оказывается что немного не так. Подразделение, в котором работает человек - это просто атрибут этого человека. А список подразделений - это обычная таблица классификатор, даже если в жизни она занимает главенствующее положение.

116_3.gif (1737 b)

В модели данных все понятия равноправны. Приходя на работу Вас записывают в список подразделения. Создавая модель данных Вы даете атрибут человеку принадлежность к подразделению. Итак, вот такая таблица в жизни.

116_4.gif (1674 b)

А вот результат преобразования в модель.

116_5.gif (1963 b)

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

116_6.gif (2552 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.09.2001