我是靠谱客的博主 阳光巨人,最近开发中收集的这篇文章主要介绍关系型数据库中,表与表之间关系的理解,以及设计数据库思想总结:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.在关系型数据库中,表与表之间的关系主要有三种:(1)一对一,(2)一对多,(3)多对多

(1)一对一:两张表中的数据是一一对应的,例如--> 用户表user ------- 身份信息表 

(2)一对多:一张表中的数据,在另一张表中对应多条数据,例--> 英雄表hero ----- 技能表 

(3)多对多:A表中的数据,在B表中对应多条数据。B表中的数据,在A表中对应多条数据。例-->老师表 ---- 学生表

2.对于一对一而言,从某些层面上来讲吗,它是没有意义的,我们在设计数据库表时,将表设计成一对一的关系,往往是因为当前表中的字段太多。比如:当前表中一共有100个字段,我们可以将这100个字段拆分成5张表。

我们在设计一对一这种表关系时,一般需要考虑两种因素:

(1)数据库的查询性能:对一张表而言,不能有太多的字段。因为如果我们使用ORM映射的方式来查询数据库时,它会将所有的字段信息全部查出,这时,如果一张表的字段太多,会影响查询的性能。

  (2)  考虑业务因素:出于业务的角度,可能需要当前一张大表中的某些字段,需要独立出来,单独形成一张独立的表。这时可以考虑将表进行拆分。

3.多对多的关系:

在多对多的关系中,我们需要设计一张中间表,三张表才可以确定一条整体的数据。中间表大致分为两种:(1)只是有确定关联关系的作用,不存在具有业务意义的字段。(2)不仅仅有关联两张表的作用,还存在具有业务意义的字段。

4.设计数据库表的步骤:

(1)我们不应该将数据库的每一张表仅仅当做是数据表来处理,而是应该与我们项目中的实体类相对应,每一个实体类对应于数据库中的一张表。

(2)我们首先需要规划出业务中的一个个业务对象,然后根据业务对象来设计数据库表。

(3)思考对象与对象之间的业务依赖关系-->是一对一,一对多,还是多对多。那么表与表之间的关联是通过外键的形式来实现的。外键又分为逻辑外键,物理外键。对于物理外键,一般不建议使用。

(4)整体设计完以后,最后对数据库表进行细化。例如:字段类型,字段的长度限制,是否为空......

        以上只是设计简单项目的数据库,但是对于存储海量数据的数据库而言,我们还需要思考一些其他的维度。例如:单表中的数据记录越多,对数据库性能的影响就会越大。如果单表的字段数量太多,那么就需要考虑对数据库进行垂直拆分,记录太多,那么就需要考虑对数据库进行水平拆分。

 

5.设计数据库表时,对于是否需要设置物理外键的探讨:

使用物理外键的好处:它的约束力比较强,可以保证数据的强一致性,但是会影响数据库的查询效率。不使用物理外键,对数据库而言,没有那么强的约束力,相对能提高数据的查询效率。普遍认为,不提倡使用物理外键。

最后

以上就是阳光巨人为你收集整理的关系型数据库中,表与表之间关系的理解,以及设计数据库思想总结:的全部内容,希望文章能够帮你解决关系型数据库中,表与表之间关系的理解,以及设计数据库思想总结:所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部