1-1关系的单独表格

时间:2016-04-23 16:34:46

标签: database ms-access database-design

我正在创建一个Access数据库来保存学生实习信息。我遇到的问题是我有三张表与实习表只有一个且只有一个关系(作业,主管评估和学生评估)。

由于Access不允许表格拥有多个自动生成的数字,因此我不能让实习表为这三个表格中的每一个创建ID号。所以,我不知道如何在我们将数据输入这些表格时这样做,我可以将它专门分配给实习。有什么建议吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

1-1关系总是闻起来应该被合并到一个表中。如果它们实际上是1-1并且不应该是1-0,1,则尤其如此。在后一种情况下,如果依赖信息可能丢失并且在大多数情况下将丢失,那么将其分离到自己的表中可能会有所帮助。但即便如此,也可以通过为某些属性赋予null值来表达。

现在,如果出于某种原因,你坚持使用这4个表,那么有两种方法可以使用主键。一个是,对于从属表,不要将主键声明为自动生成,而是将其声明为数字,并为其分配实习记录的自动生成值。另一种方法是为每个依赖表自动生成主键,并在Intership表中为每个表创建一个外键。由于我认为这些因变量表的整个结构不必要地复杂化,我无法就这些方式中的哪种方式提出建议。

我对您的数据模型还有另一个担忧。你的表有像answer1,answer2这样的属性,......现在,如果你有一些固定数量的属性,这可能没问题。但是,对于每种类型的实习,您是否可以拥有更大的固定问题,这些问题可能会动态变化而不能仅通过固定的列结构来表达?在这种情况下,你需要像

这样的东西
Question(id, text)
Internship(id, ...)
Answer(id, internship_id, question_id, student_answer, supervisor_evaluation)

所以你的基数将是

Internship 1-----0,n Answer 0,n------1 Question

实习的其他细节相同。