0

是否可以让下一个生成的行(跨 2 个表)的 ID 是唯一的?

我有 4 张桌子:

  • 1 教师
  • 1 学生
  • 1 项目
  • 1 关系

关系表有 3 个外键。一个是教师ID,一个是学生ID,另一个是项目ID

由于一个项目可以同时与教师和学生相关,我如何确保新创建的教师或学生不会有其他类型帐户已使用的 ID?

如果我能做到,那么关系表将只有 3 列:ID、project_ID 和 related_to(ID)

如果没有,我将不得不添加第 4 行,指示它所涉及的帐户类型(学生或教师)。

谢谢你的帮助!

关于帐户类型之间的区别:我必须将这种完全相同的情况转换为我的另一个项目,其中前两个表完全不同。这就是为什么我不费心在这里合并学生和教师表的原因。

4

2 回答 2

1

您不需要在studentteacher表之间具有唯一值,因为关系表对每个关系都有单独的字段,因此不存在冲突。

然而,这不是做事的正确方式。您需要两个关系表teacher_projectstudent_project. 或者,根据教师和学生之间不同的唯一数据,您可以拥有一个person表和一个关系,这可能更接近现实世界。

于 2013-01-19T02:20:17.630 回答
0

我认为您可以识别老师以1开头,增量2;学生以2开头,递增2。这样奇数代表老师,偶数代表学生,不会发生冲突。

于 2013-01-19T06:01:07.463 回答