数据表(中间表)的设计:多对多关系
中间表-多对多关系的转化:
在表的使用中,经常存在多对多的关系,以订单和商品为例,一个订单对应多个商品,一个商品也对应多个订单,此时把E-R图(E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型)转化为关系模型时,需要引入中间表。
中间表包含两个实体类的主键,建立两张表沟通。
中间表也可以有普通字段,例如商品数量,每种商品总和(需要把他们与实体表中字段含义区分开)。
中间表主键:
中间表的主键可以是两个外键作为联合主键( 联合主键就是说,当一个字段可能存在重复值,无法确定这条数据的唯一性时,再加上一个字,两个字段联合起来确定这条数据的唯一性。比如你提到的id和name为联合主键,在插入数据时,当id相同,name不同,或者id不同,name相同时数据是允许被插入的,但是当id和name都相同时,数据是不允许被插入的),也可以是再增加一个主键字段。
三个实体间存在多对多的关系:
有一个实体与剩下两个实体存在N:M关系,剩下两个实体没有 三个实体间存在多对多关系
中间表简述:
中间表是业务逻辑中的概念,就是将计算结果先保存在一个临时的表中,然后再从这个表中计算,减少程序的复杂度。临时表是中间表多采用的一种技术,使用 Oracle临时表功能可以免去中间表数据的维护工作。
中间表举例:
分析表1(tableOne),找到唯一的业务主键,这是一个班级课程表,存储了课程的信息,主键就id。 分析表2(tableTwo)找到唯一的业务主键,这是一个课程单元表,存储了所有课程单元。 因为课程表和单元表没有关联信息,所以无法关联查询,这时需要中间表把两个表进行关联。 建立索引。 查询测试。 检验测试查询结果。
下一篇:
MySQL部分常用的DML语句