我是靠谱客的博主 如意小天鹅,最近开发中收集的这篇文章主要介绍基础的sql表设计概述1 表与表之间数据的一对一 2 表与表之间数据一对多 3 表与表之间数据多对多 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概述

在数据库表的设计上为了让表与表之间产生联系,确保数据的唯一,准确,完整,
通过外键进行表与表之间的数据约束,实现数据表的建设
#作为说明符号,表中约束名自己命名

1 表与表之间数据的一对一

建表原则:创建一张数据表使用外键( 外键设唯一限制 )去关联主表的主键
示例: create table 从表 (
..
属性列 1 数据类型 unique , #实现一对一的关键,否则就是多对一/一对多
constraint 约束名 foreign key (属性列 1)references 主表名(主键名)
);
解析实现一对一: 由于主表的主键唯一,当使用从表的外键去关联了主表的主键之后,主表
主键值和 从表外键值实现绑定且相同 ,当对从表进行添加时,就需要保持
主表主键值和从表外键值相同;

2 表与表之间数据一对多

建表原则: 创建一张表使用外键去关联主表的主键
示例: create table 从表 (....
属性列 1 数据类型 ,
connstraint 约束名 foreign key(属性列 1) references 主表名(主键名)
);
解析实现一对多: 主表主键唯一,当使用从表的外键去关联主表的主键后,主表键值和从
表键值绑定且相同, 但是由于从表外键并没有添加唯一约束,也就是
允许有多组数据拥有相同的外键 ,但是外键又和主表主键值绑定且相
同,于是实现多组数据对向同一主键;

3 表与表之间数据多对多

建表原则: 实现多对多需要建立第三张中间表,且中间表至少有两个属性列,使用这两个
属性列作为外键单分别关联另外两张表的主键
示例:
创建第一张表: create table 表 1(
属性列 1 数据类型 primary key auto_increment,#设置主键自增
...
); 创建第二张表: create table 表 2(
属性列 1 数据类型 primary key auto_increment,#设置主键自增
...
);
创建第三张表: create table 中间表(
属性列 1 数据类型 primary key auto_increment,#设置主键自增
属性列 2 数据类型 ,
属性列 3 数据类型,
constraint 约束名 1 foreign key(属性列 2 做为外键) references
表 1 名(表 1 主键名),
constraint 约束名 2 foreign key(属性列 3 做为外键) references
表 2 名(表 2 主键名)
);
解析实现多对多: 第三张表中的两个属性列作为外键分别去关联另外两张表的主键,在
对第三张表进行操作时, 相当于使用两张基础表的主主键在进行新的
组合 ,组合结果作为第三张表中的一组数据,从而实现多对多
扩充: 注意联合主键的实现
联合主键:
使用多个属性列作为主键
创建示例:create table 表名 (
属性列 1 数据类型 ,
属性列 2 数据类型,
...
primary key(属性列 1,属性列 2) #将属性列 1 和属性列 2 作为主键
)

最后

以上就是如意小天鹅为你收集整理的基础的sql表设计概述1 表与表之间数据的一对一 2 表与表之间数据一对多 3 表与表之间数据多对多 的全部内容,希望文章能够帮你解决基础的sql表设计概述1 表与表之间数据的一对一 2 表与表之间数据一对多 3 表与表之间数据多对多 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部