两个实体之间多对多的联系能转化成一对多的联系么

1个回答

  • 可以,因为有这个必要,在数据库设计的过程中,一对多情况下的设计比较容易,多对多情况下的设计相对复杂一些.若实体之间存在多对多的关系,就可以将其转化为若干个一对多关系,简化设计.

    以最简单的两个实体之间的多对多关系为例,可以在两者之间增加第三个实体:关系实体,原来的两个实体都和这个关系实体发生联系.换句话说,原来多对多的关系,转变为两个一对多的关系.从表设计角度来讲,这里的第三个实体,也应该对应一张表,存储了两个实体之间复杂的关系.

    例如,在"教务系统"中,"课程"是一个实体,"学生"也是一个实体.这两个实体之间的关系,是一个典型的多对多关系:一门课程在不同时间可以被多个学生选,一个学生又可以选多门课程.这种情况下,要在二者之间增加第三个实体,该实体取名为"选课",它的属性为:课程编号、学生学号,分别作外键 ("课程"的主键,"学生"的主键),使它能与"课程"和"学生"连接;另外还包括选课的其他信息,如选课时间,课程教师,课程分数等.

    当然,如果多个实体之间有互相的多对多关系,情况可以以此类推.