这是我参与更文挑战的第1天,活动详情查看: 更文挑战
前言
在实际的开发过程中,大家可能都是直接面向需求的,更多的是在现有的基础上怎么实现功能,从而忽略了数据库设计的重要性。
本文将介绍数据库设计的具体流程,如ER图、数据库范式等。
往期链接
一、主要步骤
一般来说数据库设计主要分为以下几个步骤
概念设计
定义
概念设计 的目标是产生反映企业组织信息需求的数据库概念结构,即概念模式。
概念模式 是独立于数据库逻辑结构,独立于支持数据库的 DBMS(Database Management System 数据库管理系统) ,不依赖于计算机系统的。
ER(实体联系) 模型是对现实世界的一种抽象,它的主要成份是实体、联系和属性。
一般来说,概念设计通过ER图就可以很好的展现出来了。
简账中的角色权限的ER图如下所示:
二、表设计
说到数据库设计就不得不说 数据库范式
了,一般来说遵从第三范式即可。
定义
1NF 第一范式条件:必须不包含重复组的关系,即每一列都是不可拆分的原子项。
2NF 第二范式条件:关系模式必须满足第一范式,并且所有非主属性都完全依赖于主码。
3NF 第三范式的条件:关系模型满足第二范式,所有非主属性对任何候选关键字都不存在传递依赖。即每个属性都跟主键有直接关系而不是间接关系
3NF稍微难理解一点,举个例子:
记录详情表tb_detail
表(id,用户Id,花费类别名,花费类别码,金额)这样一个表结构就不符合3NF
。因为花费类别名和花费类别码是对应的,存在传递关系。
所示正确设计应为:tb_detail
表(id,用户Id,花费类别Id),tb_spend_category
表(id,花费类别名,花费类别码)
简账中的数据库表设计如下所示:
三、总结
感谢看到最后,非常荣幸能够帮助到你~♥
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END