谁能通俗易懂的跟我讲下SQL多对多的关系。

如题所述

几对几的关系只有在概念模型里有,概念模型就是E(实体)-R(关系)模型

其中多对多就是,相联系的两个实体,在某关系下互相一对多。
比如:选课关系里的课程和学生。
一个 学生可以 选 多门 课程(1:N)
一门 课程也可 被 多个 学生 选(1:N)
所以 实体学生(选课关系)课程实体 就是多对多的关系(M:N)

而实体教师 (讲课关系)课程实体就是一对多,你自己理解一下。追问

那么如何设置他们的主键呢?

追答

得概念模型转换为逻辑模型,也就是关系模式,按照规则转换就好。
多对多的关系,一般是两端实体的码还是他们本身的码,他们的码联合作为关系的码。就是两端的实体,实体建的表(学生表)(课程表)本身的主键(学号)(课号)还是主键,而由关系创建的表(选课表),两端实体的主键联合作关系表的主键(学号,课号)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-21
现代社会而言 一个男人可以拥有很多个女人 而他其中的每一个女人都有可能拥有很多个男人,如此而已
第2个回答  2012-03-21
1个学生有多个老师 ,1个老师对多个学生。
相似回答