Таблица, которая не имеет первичного ключа и имеет только один внешний ключ, можно ли дублировать внешний ключ? - PullRequest
0 голосов
/ 25 октября 2019

enter image description here

Предполагая, что таблица EMP_SALARY_INFO не имеет никаких других связей, кроме таблицы EMPLOYEE.

Мой вопрос: первичного ключа не существует длятаблица EMP_SALARY_INFO. Есть только один внешний ключ. Когда я создаю экземпляры сущностей для таблицы EMP_SALARY_INFO, мой внешний ключ, т. Е. EMP_ID, повторяется. Это допустимо или нарушает какое-либо правило реляционной базы данных? Если это повторение является нарушением, нужно ли мне создавать уникальный идентификатор (первичный ключ) для таблицы EMP_SALARY_INFO?

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Внешний ключ конкретной таблицы - это первичный ключ таблицы, на которую она ссылается. Следовательно, в приведенном выше случае, если у вас есть данные в вашем empid сотрудника и те же данные, если они ссылаются на emp_salary_info, это не вызовет каких-либо проблем, даже если они повторяются в таблице emp_salary_info, так как они не повторяются в таблице и ссылаются на, например, Employee.

1 голос
/ 25 октября 2019

Это совершенно нормально. Я хотел бы напомнить, что в вашем примере есть возможность иметь повторяющиеся диапазоны дат для одного и того же сотрудника. Например, если во время ввода данных была допущена ошибка, у вас могут быть две разные ставки оплаты для одного и того же диапазона дат. Теперь, это может быть допустимым сценарием в вашем случае, однако, если это не так, подумайте о создании уникального ограничения для Emp_id, from_date и till_date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...