我应该在这里使用主键吗?

Man*_*ish 2 sql database database-design

举个例子,我有3个表:

School: ID int, Name varchar

Student: ID int, Name varchar

StudentInSchool: StudentID int, SchoolID int
Run Code Online (Sandbox Code Playgroud)

现在问题是我是否应该ID int在StudentInSchool表中放置一个带有主键的列?如果是,为什么?

它会对索引有帮助吗?

任何帮助赞赏.

Ant*_*lev 7

就个人而言,我在这样的连接表上创建了复合PK(StudentIDSchoolID).这也确保了独特性.

但是,如果不需要唯一性,则必须添加一ID列以唯一标识每一行.

一般来说,添加单独的ID列无济于事:很少有查询(如果有的话)实际使用此列.至于性能,您可以为每列创建单独的索引,您就可以了.

  • 取决于我们想要使用联结表描述的关系的基数.当我们试图模拟现实世界时,强制执行一对一关联可能会适得其反. (2认同)