前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL(数据库设计)

MySQL(数据库设计)

作者头像
全栈开发日记
发布2022-05-12 21:15:03
1.8K0
发布2022-05-12 21:15:03
举报
文章被收录于专栏:全栈开发日记全栈开发日记

目录:

三大范式 ER图 PowerDesigner工具

数据库设计三大范式

范式是符合某种设计要求的总结,关系型数据库中有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)、第五范式(5NF)。

一般企业开发过程中,只需要满足第三范式。

第一范式

每个字段不可再分割,数据库表中每一列都是原子项的数据。

如:下面表就不符合第一范式

为什么?

因为address列不具有原子性,还可以分割。

对上表进行修改,使其符合第一范式,如下表:

注意:在企业开发过程中要求所有的表必须满足第一范式。

第二范式

所有的非主键列完全依赖于主键列,第二范式是建立在第一范式的基础上。

如:下表就不符合第二范式

为什么?

本课学分只依赖于课程编号,不依赖于学号,所以本课学分不满足第二范式,

对上表进行修改,使其符合第二范式,如下面两个表:

1、课程表

2、成绩表

第三范式

满足第二范式的基础上消除传递依赖,一个表中的非主键字段不能依赖于该表中的其他非主键字段;

如:下表就不符合第三范式

为什么?

学号是主键,姓名、性别、年龄,班主任编号都直接依赖于学号,班主任姓名和班主任年龄没有直接依赖于学号,而它依赖的是班主任编号(非主键字段);

对上表进行修改,使其符合第二范式,如下面两个表:

1、学生表

2、班主任表

注意:

在实际开发过程中,所有表的设计都必须满足第一范式要求,可以不满足第二范式和第三范式。

因为性能的优先级要高于规范的优先级(当性能和规范冲突时以性能为主),特别是电商项目中,为了满足性能要求去违背设计规范。

ER图

矩形:实体或表;

椭圆:表中的属性(字段);

菱形:实体和实体之间的关系;

如下图(ER图):

数据库中实体和实体之间的关系有一对一,一对多的关系,多对多的关系,

下面详细说明一对一和一对多的关系:

一对一

用户登录表:

用户信息表:

一对多(或多对一)

用户表:为参照,一个用户只能有一个部门,如果参照为部门,一个部门可以有多个用

户。

部门表:

多对多(双向一对多)

每一个用户对应多个权限,每一个权限对应多个用户。

角色表:

权限(菜单)表:

角色权限表:

PowerDesigner

这是一个建立数据库模型,生成数据库的工具。

在真实开发过程中,先确定实体及实体属性(ER图),建立物理模型(能够直观的感受到实体和实体间的关系,并且能够清晰的看到实体中的属性。

具体用法可参考网上教程,这里暂时不做教程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一范式
  • 第二范式
  • 第三范式
  • 注意:
  • 一对一
  • 一对多(或多对一)
  • 多对多(双向一对多)
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档