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

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

一.目录

前言

内容

结语

二. 前言

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

三.内容

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

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

四.结语

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

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

目录
相关文章
|
2月前
|
存储 JSON 测试技术
【HarmonyOS Next开发】云开发-云数据库(二)
实现了云侧和端侧的云数据库创建、更新、修改等操作。这篇文章实现调用云函数对云数据库进行增删改查。
58 9
【HarmonyOS Next开发】云开发-云数据库(二)
|
13天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
27 2
|
2月前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
92 13
|
2月前
|
存储 前端开发 关系型数据库
鸿蒙开发:实现键值数据库存储
对于数据量比较的小的,我们直接选择轻量级的用户首选项方式即可,而对于数据量比较大的情况下,直接可以使用数据库,而对于相对来说,比较大的数据,我们就可以使用键值型数据库方式
101 2
|
3月前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
3月前
|
SQL Java 数据库连接
数据库常用接口
ODBC(Open Database Connectivity):开放数据库互连技术为访问不同的SQL数据库提供了一个共同的接口。ODBC使用SQL作为访问数据的标准。这一接口提供了最大限度的互操作性,一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是Access,MySQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
|
3月前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
3月前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
66 4
|
3月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
84 2
|
3月前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
27 1

热门文章

最新文章