[英]Can I use 2 primary key (from same table) as foreign key in other table?
我正在尝试开发一个网站。 是一种大学网站。 我也为管理员、学生和讲师做了一个名为 ACCOUNTS 的表。 因此,对于管理员,我手动创建了一个帐户,该管理员可以管理网站,他可以为讲师创建帐户并将详细信息发送给他们。 对于学生,我创建了一个注册页面,他们可以在其中申请课程,管理员决定如何接受或不接受(我在名为 active 的帐户中有一个列,默认情况下所有帐户都是使用非活动帐户创建的)。 现在问题出在 GRADES 表上。 我需要的信息是 Grade-ID、Module-ID、theGrade 和 account_id 以便学生知道如何获得成绩,但我想添加讲师如何标记,问题是它具有相同的名称(account_ID ) 因为和学生在同一张桌子上。 我应该怎么做?
您可以拥有引用accounts
表主键的grades
表的两列。
我认为你想要这样的东西:
create table grades(
grade_id int primary key,
grade int,
module_id int,
student_id int,
lecturer_id int,
constraint fk_grades_student
foreign key (student_id)
references accounts(account_id),
constraint fk_grades_lecturer
foreign key (lecturer_id)
references accounts(account_id)
);
但是请注意,这并不能确保引用的帐户确实是讲师或学生(它只是确保它存在于accounts
)。 使用不同的数据结构强制执行此引用约束会更容易(例如,如果每个帐户角色都有单独的子表)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.