接口开发方法论 · 数据库设计篇《怎么设计好数据库?》

简介: 高手说的简单与菜鸟理解的简单是两个不同的概念,就像富人的小目标与普通人的小目标不能相提并论,在自己能力、认知范围内做出的判断会有偏差。

一.目录

前言

内容

结语

二. 前言

高手说的简单与菜鸟理解的简单是两个不同的概念,就像富人的小目标与普通人的小目标不能相提并论,在自己能力、认知范围内做出的判断会有偏差。我们不能保证自己是最优秀,但可以保证自己朝着优秀的方向前进,大白话就是:你可以不优秀,但不能太拉垮!人与人差距其实不太大,差距的数量多了就变大了。言归正传,怎么设计好数据库(这里只涉及表、字段之类的,不做深入探讨)呢?

三.内容

    设计好数据库要从以下几个方面入手:

  1. 参考之前的表、字段表命名规则 。表命名规则:库名+业务名+表名;字段命名规则要尽量做到一套系统中基本一致,不能出现在这个表中是stationType,在其它表中是type。
  2. 字段类型、长度要保持一致。字段长度要预估好,可以设置长一点。之前项目中出现过type长度为1,突然有一天报错的了,原来新需求增加了type刚好超过字段长度。
  3. 创建必要的索引、约束。比如主外键索引,没有加基本上关联查询都很慢,而且还很难找出问题原因,后面又是一个艰难的优化过程;唯一约束,根据业务场景要创建好,避免在程序层面没有控制好的情况下,数据库也没有控制好。
  4. 新创建表通常会有主键、创建时间、创建人、修改时间、修改人、状态(为了数据安全绝大多数删除都是逻辑删除)
  5. 基本遵守“三范式”。
  • 确保每列的原子性,每列或者属性值都不可再分的的最小数据单元。举例,用户表:id,用户名,性别,年龄。。。每个字段都是最小的单元,不能再细分。
  • 确保表上的每列都和主键相关。比如用户表,角色表,用户表是不能保存用户角色的,一张表通常只记录一类信息。
  • 确保每列都和主键直接相关 。主要是Armstrong公理(从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则,这些规则常被称作“Armstrong 公理”。)比如,用户表,用户类型表,类型不能存在于‘用户表’。
  1. 可以做适当字段冗余。
  2. 关于业务拓展方面设计,比如订单主表(有业务类型,业务id-子业务的id)、订单主表详情、订单各业务的子表;会员表、会员拓展表、第三方用户表。
  3. 表、字段加上注释。类型、状态代表什么意思要写清楚。      

四.结语

之前有网友吐槽项目中出现一个表超过50个字段、表中什么注释都没有,其实这些都项目管理不到位、开发人员素养问题,这两个问题没有解决吐再多的槽也没有用。不过,也有外包开发者也遇到过我就直接劝他重新找工作,因为你没有话语权。

人与人差别除了个人努力等之外,还和环境有关,好的方法、方案不是每个人都知道,能理解,需要时间,需要“鲶鱼效应”。

目录
相关文章
|
3月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
|
2月前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表4、数据库设计——2、数据库规范化(Normalization)——3、实体-关系模型(ER Modeling)
MySQL技能完整学习列表4、数据库设计——2、数据库规范化(Normalization)——3、实体-关系模型(ER Modeling)
60 0
|
3月前
|
存储 安全 数据库
电商管理系统的数据库设计思路和数据库代码
电商管理系统的数据库设计思路和数据库代码
57 0
|
9月前
|
数据库 索引
数据库上机实验7 数据库设计
数据库上机实验7 数据库设计
55 0
|
10月前
|
存储 Java 数据库
数据库设计方法论 - 继承
数据库设计方法论 - 继承
109 0
|
11月前
|
存储 SQL 数据管理
【数据库原理 • 四】数据库设计和规范化理论
数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。 当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。
339 0
|
11月前
|
存储 数据管理 数据挖掘
【数据库原理 • 四】数据库设计和规范化理论
数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。 当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。
178 0
|
存储 SQL Oracle
【SQL Server】数据库开发指南(一)数据库设计
在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置。如果不经过数据库的设计,我们构建的数据库不合理、不恰当,那么数据库的维护、运行效率会有很大的问题。这将直接影响到项目的运行性和可靠性。
182 0
【SQL Server】数据库开发指南(一)数据库设计
|
存储 数据库
数据库系统概论第七章(数据库设计)知识点总结(2)—— 需求分析
安全性是指用户需要如何保护数据不被未授权的用户破坏;完整性是指用户需要如何检查和控制不合语义的、不正确的数据,防止它们进入数据库
202 0
数据库系统概论第七章(数据库设计)知识点总结(2)—— 需求分析

热门文章

最新文章