gpt4 book ai didi

mysql - 建模: Relationship of three Tables

转载 作者:行者123 更新时间:2023-11-29 20:53:35 25 4
gpt4 key购买 nike

我有三个实体:学生、教授和 essay_topics。

情况:学生可以在教授的监督下以essay_topic写出多篇论文。 (粗体:实体)

但他们只能在特定教授的指导下写一篇论文一次。 (不是同一个教授的两次)他们不能写一篇与他们相同 essay_topic 相同的文章。

这是唯一的限制,但应该有可能:一位教授可以监督多个具有相同论文主题的学生。不同的教授可以指导具有相同 essay_topic 的不同学生。

所以我们有一篇关系论文(StudentID、EssayTopicID、ProfessorID)。但我现在不知道主键是什么。或者我们在这里有什么样的关系?我猜是 n:1:1 (呃模型)。但是,只有 StudentID 才是该表的主键——这实际上是错误的,因为学生只能写一篇论文……

最佳答案

如果您写下限制的功能依赖性,它将有助于理解情况:

(student, essay_topic) -> professor
(student, professor) -> essay_topic

您有两个重叠的候选键 - (student, essay_topic)(student, Professor)。您可以选择其中一个作为物理模型中的主键,只要为另一个添加唯一约束即可。

我怀疑这是一种无法在 ER 中精确建模的情况(是的,ER 不是一个完整的数据模型,与关系模型不同)。我会省略基数指标并包含 FD 作为评论。

PS。请不要将实体之间的关系与表之间的关系混淆。实体之间的关系作为(通常是不同的)实体集之间的关联记录在表中。表之间的关系是外键约束,并对同一实体集的两列强制执行子集限制。

关于mysql - 建模: Relationship of three Tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820390/

25 4 0