不同表的同名主键

Primary keys with same names in different tables

这是我的数据库架构。我不明白 Event <-> Eventplan <-> Subject 之间的关系。粗体名称是主键。但是,如果 EID 是 Event 和 Eventplan 中的主键,那么哪个是它们自己关系中的主键?

必须有一个主键和一个外键才能在 SQL 中使用它们。所以我真的不明白如何在两个名称相等甚至标记为主键时查看它们中的哪一个具有什么作用。

该理论与活动计划有点偏差...

鉴于一个计划可用于任意数量的活动,但一个活动始终只有 1 个计划...

我的结构是这样的:

计划 PID,PName ....等..,

事件 EID、学期、MID、SID、PID、时间、房间

模块 MID,Mname...

主题 SID、SName

假设如下:

  • 计划属于零个或多个事件。
  • 模块属于零或可能事件。
  • 以下主题为零个或多个事件。
  • 活动只有一个模块、主题和计划。
  • 含有ID的字段为PK或FK..排在前的为PK,后排的为FK。

我插话 MID 和 SID,因为如果名称更改,您必须更新这两个表。在这种情况下,如果名称更改,MID 和 SID 将成为不相关的代理键。