在数据库中,可以通过创建第三个表来创建表之间的多对多关系,该表使用外键将两者映射在一起。第三张表和原来的两张表是什么关系?
例如,如果表 A 和表 B 是多对多关系,而表 AB 是数据透视表,那么 A->AB 关系是否总是多对一关系,B->AB 关系也是总是多对一的关系?
在数据库中,可以通过创建第三个表来创建表之间的多对多关系,该表使用外键将两者映射在一起。第三张表和原来的两张表是什么关系?
例如,如果表 A 和表 B 是多对多关系,而表 AB 是数据透视表,那么 A->AB 关系是否总是多对一关系,B->AB 关系也是总是多对一的关系?
我相信简短的回答是“是”。:)
简单来说,外键关系必须将AB列映射到A中的单个列或B中的单个列。但是由于AB的内容代表了A和B之间的多对多关系,因此根据定义可以有多个实例AB中的A键或B键。同时,AB中出现重复记录,即。多次表示相同的 AB 关系是错误的。
所以,是的:AB 两侧的一对多。
挑剔,A->AB 和 B->AB 是一对多的关系,不是多对一的:A 中的实体应该在 A 中出现一次,但在 AB 中可以出现多次(链接到几个 B实例);B 中的实体应该在 B 中出现一次,但在 AB 中可能再次出现多次(将其链接到多个 A 实例)。