mysql – 不能有“不识别”的N:M关系吗?

我的数据库ERM(实体关系模型)有一个TEACHER实体类型,它与SUBJECT_MODULE实体类型相关(因为每个主题中的不同模块由不同的教师讲授,对于某些模块,甚至每个模块中的不同章节都可以通过不同的教师)通过TEACH关系类型.

这是一种N:M的关系,因为每个教师都可以教授许多学科模块,每个模块都可以由几位老师教授.

但在我看来,这不是一种识别关系,因为主题模块不依赖于教师的独特识别;如果您不同意这一点,请说出来.

但是从this tutorial开始(虽然它只是说,“识别关系通常用于从多对多关系创建的连接表.”),并发现MySQL Workbench的ERD建模工具只包含一个工具来建模M:N关系,用于“识别N:M关系”,至少工具提示是这样的……我想知道N:M关系是否总是或者不总是识别关系.请澄清一下.谢谢.

最佳答案

I wonder if an N:M relationship is always or is not always an identifying relationship.

M:N关系本身永远不会“识别”(或“非识别”),但可以包括识别或不识别1:N关系.

这不是关于识别任何端点(教师和主题模块),而是识别它们之间的连接.在这种情况下,它看起来从端点表迁移的密钥组合标识了连接(通过成为连接密钥的一部分):

因此,虽然M:N关系本身不是“识别”,但是由它组成的1:N关系是.

(您引用的工具UI可能只使用术语“识别M:N”作为上述简写.)

话虽这么说,你可以在这些迁移的密钥之上没有密钥的情况下离开连接:

它在技术上仍然是M:N,但现在允许重复连接(即同一个教师多次连接到相同的主题模块),在这种情况下,上面的1:N关系将不再是“识别”.

点赞