2013-11-08 4 views
0

enter image description hereУнарное (Рекурсивный) Отношения Mapping

Как отобразить этот вид отношений? Проблема, с которой я столкнулась, соответствует показателю ER, указанному abouve. «У каждого Emplyee должен быть супервизор» и «Каждый сотрудник должен контролироваться сотрудником». Поэтому при вставке первой записи есть проблема, потому что нет другого идентификатора сотрудников, который я могу вставить в качестве супервизора. Поскольку обе стороны являются обязательными, он должен иметь как EmpID, так и SupvID при вставке записи. И SupervID не может быть прав?

Пример Сотрудник таблицы:

Сотрудник EmpID | имя | dob | SupervID

+1

Я думаю, что «рефлексивный» лучше, чем «унарный» в этом контексте. –

ответ

2

Моделирование ER должно отражать бизнес-правила по данным. Бизнес-правило, согласно которому «каждый сотрудник должен контролироваться каким-то сотрудником», невозможно реализовать, если вы не позволяете одному сотруднику контролировать себя или если вы не разрешаете циклы в цепочке контроля.

Если ваши бизнес-правила невозможны, ваша модель ER будет отражать этот факт.

0

Предполагая, что ваша организация имеет иерархию, которая контролирует надзорных органов? Кто руководит супер-супервизорами? В конце концов, у вас будет хотя бы один сотрудник, у которого нет супервизора. Таким образом, описанные вами бизнес-правила нереалистичны, и дизайн базы данных, естественно, будет проблематичным.

0

Поскольку это Many to 1 отношения, то Многие (супервизируемый) сторона несет идентификатор своего непосредственного начальника. Поэтому:

Employee (*ID*,supervisorID) 
Смежные вопросы