学习总结一(数据库表关系)

来源:互联网 发布:咸鱼如何申请淘宝介入 编辑:程序博客网 时间:2024/06/07 04:58
数据库表关系
关系是通过匹配键列中的数据而工作的,而键列通常是两个表中具有相同名称的列。在大多数情况下,关系将一个表中为每个行提供唯一标识符的主键与另一个表中外键内的项相匹配。例如,通过在 titles 表的 title_id 列(主键)和 sales 表的 title_id 列(外键)之间创建一个关系,可以使销售额与特定的销售书名相关联。

表与表之间存在三种类型的关系。所创建的关系类型取决于相关联的列是如何定义的。 
一对多关系
多对多关系

一对一关系 


一对多关系
一对多关系是最常见的关系类型。在这种关系类型中,表 A 中的行可以在表 B 中有许多匹配行,但是表 B 中的行只能在表 A 中有一个匹配行。例如,publishers 表和 titles 表是一对多的关系:每一个出版商可出版许多书,但每一本书只能有一个出版商。

如果在相关列中只有一列是主键或具有唯一约束,则创建的是一对多关系。

一对多关系中的主键方由一个键 符号表示。关系中的外键方由一个无穷大 符号表示。

多对多关系
在多对多关系中,表 A 中的一行可与表 B 中的多行相匹配,反之亦然。通过定义称为连接表的第三方表创建这样的关系,该连接表的主键包括表 A 和表 B 中的外键。例如,authors 表和 titles 表是多对多关系,该关系通过从这些表中的每个表与 titleauthors 表的一对多关系定义。titleauthors 表的主键由 au_id 列(authors 表的主键)和 title_id 列(titles 表的主键)组成。

一对一关系
在一对一关系中,表 A 中的一行最多只能与表 B 中的一行相匹配,反之亦然。如果两个相关列都是主键或具有唯一约束,则创建的是一对一关系。

这种关系不常见,因为这种方式的大部分相关信息都在一个表中。使用一对一关系可以是为了: 

分割一个含有许多列的表。


出于安全考虑而隔离表的某一部分。


存储可以很容易删除的临时数据,只需删除表即可删除这些数据。


存储只应用于主表子集的信息。 

一对一关系的主键方由键 符号表示。外键方也由键 符号表示。


候选键 (candidate key) 
对于表中的每一行具有唯一值的一个列或一组列。每个候选键值唯一标识表中的一个行。表可以具有多个候选键。表中的一个候选键由数据库设计器指定为表的主键,其它候选键称作备用键。
原创粉丝点击