0

Tables:
Student
Professors
Entries(数据库中还没有物理表intry,这个表在前端,所以如果我们需要的话,它可能是由多个帮助表组成的,只需要创建有效的erd)

Preambula:一个学生可以与许多教授有关联 一位教授可以与许多学生有关联 一个条目可以有 0,1 或更多学生或教授。教授需要与一名或多名学生关联学生不需要与任何教授有关联应该更像这样(前端入口表):

在此处输入图像描述

此表中的任何教授都必须在表中具有关联名称。(例如 Wandy 与 Alex 关联)学生不需要(但可能)在此表中有关联的教授一行(例如 Linda (Student), Kelly (Professor),Victor (Professor)) 不能以任何方式相互关联。但如果琳达和大卫有联系,那绝对没问题。

问题是我不太了解一列如何具有不同表的 id(而且这些表是多个!)并且不太了解如何为此构建有效的 erd。我会回答您需要的任何其他问题。非常感谢!

4

3 回答 3

1

如果您只是想要学生和教授之间的关联 - 只需在 ERD 中建立多对多关系。在逻辑(关系)模式中,它将创建一个中间表,其中包含学生表和教授表的外键。但是从您的示例看来,您需要为“PeopleEntries”设计数据库,这并不简单。ERD 似乎有以下实体:

  • 学生(ID,姓名)
  • 教授(ID,姓名)
  • PeopleEntries(ID、LoveCats、LoveDogs、LoveAnts)

关系(考虑到人不能多次出现在条目中):

  • 学生很多 - 1人条目
  • 教授很多 - 1人条目
  • 学生很多 - 许多教授

关系模式将包含表(根据 erd 关系的外键):

  • 学生(ID、姓名、PeopleEntryID FK
  • 教授(ID、姓名、PeopleEntryID FK
  • PeopleEntries(ID、LoveCats、LoveDogs、LoveAnts)
  • StudentProfessor(StudentID FK , ProfessorID FK )

我不知道如何在概念级别(ER 图)实现约束,禁止来自同一条目的人之间的关联。在物理级别上,您可以在触发器中实现逻辑或更新程序来检查这一点。

于 2011-06-15T04:51:49.397 回答
0

根据我的快速理解,

创建一个包含以下列 PersonName Designation 的表.....

再建一张表

人名链接到

在第二个表中,每个人条目将具有基于关系的多条记录

于 2011-06-15T02:02:52.280 回答
0

你想要一个联结表:

ID  StudentID   ProfessorID
0    23         34
1    22         34
2    12         33
3    12         34

在上表中,一位教授有 3 个学生,一位学生有两个教授。

StudentID 和 ProfessorID 应该一起是唯一索引以避免重复关系。

于 2011-06-15T02:35:31.407 回答