use*_*981 24 sql vb.net asp.net rdbms normalization
可以在一个表中引用两个外键引用其他表的一个主键吗?
EmployeeID是employee表中的主键,在时间表表中两次显示为外键.
很少有管理员用户代表其他员工填写时间表.
在时间表表格字段中,"TimsheetFor"将拥有该项目的员工ID,并且该字段为"EnteredBy"或"FilledBy"的人员将拥有填写此时间表的人员.
以下哪个选项是正确的?
注意:表格仅显示与此问题相关的字段.
Kev*_*mey 21
我会选择1.由于每个外键值将引用相关表中的不同记录,因此在两个外键列引用不同表中的相同主键列是完全正常的.
我确信选项2可以工作,但你基本上会在TIMESHEET_TABLE
和之间TIMESHEET_FILLED_BY
建立一对一的关系,使得两个表不必要且更难维护.
事实上,如果两个ENTERED_BY
和TIMESHEET_FOR
成对需要,使用选项1更为明智,因为这是自动由数据库和外键执行.
归档时间: |
|
查看次数: |
27232 次 |
最近记录: |