我正在制作一个模拟数据库,我有一个student
表,student_class
链接表和class
表。我怎样才能使一个学生不能两次注册同一门课?
示例:StudentID 21和classID 34可以在链接表中输入X次。
表也是3NF设计的
在您的student_class链接表(或者称为复合表)中,将两个值studententid和ClassID都设为主键。这个表将有两列,它们是组合主键和关联表的外键。明白了吗?
一个student_class表可能至少有两列。一个是student主键的外键;另一个是类中主键的外键。在这对列上需要一个主键约束。
例如,如果student_class有两列student_id和class_id…
- 在设计视图中打开表student_class
- 选择这两个列。
- 点击键图标。
应该可以了
您可以有一个表,它告诉您哪些学生注册了哪些班级,名称为students_classes
。如果在包含student_id和class_id的表上创建复合主键,则不可能在数据库中两次包含同一个班级的学生。
我应该指出,你应该不在这个表上有一个自动增量ID主键列(我认为Access喜欢默认添加这个,所以如果它做了,你可能不得不删除它)。如果您这样做了,如果这三个都是键的一部分,那么您仍然可能得到重复的结果。例子:
<>之前ID student_id class_id113 1 2114 1 2之前使用ID
字段仍然允许一个学生在同一个班级注册两次。