Связи между таблицами базы данных

базы данных БД

Помогите исправить замечание

По заданию спроектировал БД
http://s1.ipicture.ru/uploads/20120609/p3uVFMZF.jpg

Преподаватель написал замечания:
1. В задании 1 в структуре «Сотрудники, которым передана корреспонденция» необходимо определить уникальный идентификатор.
2. В задании 1 в структуре «Сотрудники» определить уникальный идентификатор следовало на совокупности атрибутов Код сотрудника, Код должности, Код организации.


Примечание:
Андрей Архангельский - по первому вопросу... есть поле PK"Код сотрудника" и два человека не смогут иметь одинаковый ID

Примечание:
Enyby - не совсем понятно по второму вопросу.

Примечание:
Андрей Архангельский - нарисуйте пример как по вашему должны выглядеть правильно связи (можно например тут http://dbdsgnr.appspot.com/)
Ответы:
Двойка тебе и твоему преподавателю. Вот откуда берутся безграмотные разработчики.
1. Добавить туда уникальный код.
2. У.... А потом таскать с собой первичный ключ по всем остальным таблицам? Намного лучше сделать отдельный идентификатор.
2. Если создается составной первичный ключ, то он мигрирует во все зависимые сущности. Когда это одно поле, это нормально. Но когда это три поля и 10 дочерних сущностей, то это проблема. И потом. при написании JOIN'ов, вы не один раз проклянете такой дизайн БД, поскольку придется каждый раз JOIN'ить по трем полям, а не по одному.
Дополнение #1 09.06.2012, 10:33:09
Андрей Архангельский - по первому вопросу... есть поле PK"Код сотрудника" и два человека не смогут иметь одинаковый ID


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.