没有主键,只有一个外键的table,外键可以重复吗?

A table that does not have a primary key and has only one foreign key, can the foreign key be duplicated?

假设 EMP_SALARY_INFO table 除了 EMPLOYEE table.

没有任何其他关系

我的问题是 EMP_SALARY_INFO table 没有主键。只有一个外键。当我为 EMP_SALARY_INFO table 创建实体实例时,我的外键即 EMP_ID 重复。这是有效的还是违反了任何关系数据库规则?如果这种重复是违规的,我是否必须为 EMP_SALARY_INFO table 创建一个唯一的 ID(主键)?

完全可以。我要指出的是,在您的示例中,同一员工可能有重复的日期范围。例如,如果在数据输入过程中出现错误,您可能会在同一日期范围内获得两种不同的工资率。现在,这在您的情况下可能是一个有效的场景,但如果不是,请考虑在 Emp_id、from_date 和 till_date 上创建唯一约束。

特定 table 的外键是其引用的 table 的主键。因此,在您的上述情况下,只要您的员工 empid 中有数据,如果从 emp_salary_info 引用相同的数据,即使它在 emp_salary_info table 中重复,也不会导致任何类型的问题因为它没有在 table 中重复,所以它指的是 Employee