2016-10-10 7 views
0

enter image description hereКто представляет отношение ISA в модели отношений?

У меня есть этот пример

В секретаря, мне нужно создать и идентификатор? Кто представляет в WorkBench?

Или мне нужно только создать связь 1:n?

Моя модель имеет:

Engineer : eng_type, fk: employee_ssn 
+0

Что значит «Workbench»? SQL Workbench? Идентификатор не является частью вашей диаграммы. И здесь не существует никаких отношений «1: n», если у сотрудника нет нескольких заданий –

+0

MySQL Workbench для создания таблиц и отношений. Инженер - специализация сотрудника, можете ли вы дать мне ответ, какие отношения мне нужно создать? –

+0

В вашей диаграмме показаны отношения. Почему 'SSN'' fk'? Это должно быть первичным ключом, похоже ... Это действительно зависит от того, насколько вы денормализированы. Вам определенно нужна таблица «Employee», тогда у этого может быть внешний ключ в таблице «JobType». Не уверен, что делать с «подтипами» сотрудника. –

ответ

1

Ваша диаграмма выливается в следующих таблицах:

Employee (Ssn PK, Fname, Minit, Lname, Birth_date, Address, Job_type) 
Secretary (Ssn PK/FK, Job_type FK, Typing_speed) 
Technician (Ssn PK/FK, Job_type FK, Tgrade) 
Engineer (Ssn PK/FK, Job_type FK, Eng_type) 

Job_type имеет домен (Secretary, Technician, Engineer), тип перечисления будет подходящим в MySQL. Ограничения FK для таблиц подтипов являются составными: Secretary (Ssn, Job_type) REFERENCES Employee (Ssn, Job_type) и аналогично для двух других подтипов. Вам нужно будет создать подходящие индексы.

MySQL не поддерживает контрольные ограничения, что было бы неплохо обеспечить применение Job_type каждого подтипа. Вы можете создать триггер, чтобы сделать то же самое. При этом составные ограничения FK препятствуют тому, чтобы работник имел более одного подтипа в любой момент: каждая запись в таблице Employee может иметь только один Job_type, и только таблица подтипов с подходящим Job_type может иметь соответствующую запись.

Если вы хотите, чтобы Employee участвовал полностью в отношении подтипа (т. Е. Каждый сотрудник должен иметь подтип), вы также можете создать триггер.

+0

Здравствуйте, это не ответ. Ответ заключается в том, что, поскольку это одна специализация, сын (узел) получает идентификатор отца (сотрудника), где hi является fk в одно и то же время. Это отношения, которые определяют связь 1: 1, идентифицируют, потому что мы знаем, что такое сущность. –

+0

Я с трудом понимаю вас. Employee 'Ssn' - ваш идентификатор, он подчеркивается и на диаграмме нет поля идентификатора. Я указал Ssn как PK и FK в подтипах. – reaanb

+0

Ну Ssn - это «id», который используется на диаграмме. –