在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. 数据库的约束1.1 介绍数据库中的约束 ,顾名思义即是对插入数据库中的数据进行限定,这么做的目的是为了保证数据的有效性和完整性。 这样就大幅度地提高了数据库中数据的质量,节省了数据库的空间和调用数据的时间。 之前介绍过 MySQL 中的数据类型,数据类型其实就能够对一部分数据进行校验。约束也一样,同样能够对一些数据进行校验工作。这样就可以尽量避免出现一些非法的数据 1.2 约束类型常见约束的类型有以下几种:
1.3 not null如果不使用 但是例如做一些调查问卷时,就有必填项,此时这些选项就不能为空,就可以使用 not null 示例: 1.4 unique如果不使用 但实际生活中,例如身份证号码、电话号码等等其实是一个唯一值,此时就可以使用 示例: 注意: 当列有 1.5 default当我们不使用 示例: 1.6 primary key
示例: 注意:
补充: 自动增量 —— MySQL 可以自动的为每个行分配下一个可用的编号,不用在添加一行时手动分配唯一值(可以手动分配唯一值)。但是必须用在 create 创建表的时候,例如:
1.7 foreign key
例如淘宝购物的话,一个数据库中可以有商品表和订单表两个数据表,而这两个表都可以包含商品编号。而订单表里面的商品编号一定是商品表里面有的前提下才可以出现。因此就可以使用外键来约束,防止非正常数据出现 示例:
解决思路: 逻辑删除(不直接删除数据库的记录,没有打破外键约束) 在商品表中引入一个新的字段,通过这个字段表示该记录是有效还是无效的。可以令这个字段默认值为1,即表示有效,如果要删除这个商品,就把这个字段改为0,此时该商品就无效了。 1.8 check
示例: 2. 数据库表的设计当我们掌握了基本的数据库的操作方法后,如果我们要面对一个从零开始建表的操作,势必要对我们需要的实体和它们之间的关系有一个很好的把握。 实体之间的关系主要存在以下四种:
2.1 一对一关系例如一个学生对应着有一个系统的用户身份,我们就可以有两种设计方式 将学生信息和用户信息放到一个表中
将学生放到 A 表中,用户信息放到 B 表中,在 B 表中可以插入学生学号来将学生和用户进行关联 A 表:
B 表:
2.2 一对多关系例如一般一个中学学生和班级之间是一对多的关系,一个学生只能有一个班级,一个班级里面可以有多个学生。 我们通常可以设计两张表,存放学生信息的 A 表,和班级信息的 B 表,在学生信息中添加班级来进行关联 A表:
B 表:
2.3 多对多关系例如大学生和课程之间,就是一个多对多的关系,一个学生可能有不同的多个课程,一个课程也有很多个学生来选择。 这时我们设计三个表,分别为存放学生信息的 A 表、存放课程信息的 B 表和将学生与课程联系起来的中间表 C 表 A表:
B 表:
C 表:
到此这篇关于MySQL 数据库的约束及数据表的设计原理的文章就介绍到这了,更多相关MySQL 数据库的约束及数据表设计内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论