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

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

一.目录

前言

内容

结语

二. 前言

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

三.内容

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

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

四.结语

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

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

目录
相关文章
|
2月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
2月前
|
存储 SQL 前端开发
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
本节以“账本”为例,使用关系型数据库接口实现账单的增、删、改、查操作。通过创建ArkTSRdb应用,演示如何操作RdbStore进行数据管理,并结合界面按钮实现交互功能。
110 0
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
|
4月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
100 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
5月前
|
SQL 调度 数据库
开发YashanDB数据库?用 DBeaver for YashanDB 更顺手
数据库开发复杂易错,尤其在企业级场景中。为提升效率,YashanDB 团队基于 DBeaver 开源工具打造专属解决方案——DBeaver for YashanDB。它支持多类型数据库对象管理(表、视图、函数等),适配 YashanDB 特有表结构(HEAP、LSC),提供智能补全、语法高亮、SQL 调试等功能,让开发更高效流畅。推荐用于数据库应用开发团队、高频调试用户及中大型企业统一工具栈场景。
|
5月前
|
SQL 数据可视化 IDE
开发数据库不想写命令?YashanDB Developer Center 帮你轻松搞定
YashanDB Developer Center(YDC)是一款可视化的数据库开发工具,专为提升数据库开发效率而设计。它通过图形化对象管理让数据库对象清晰可见,提供智能SQL编辑器支持语法高亮与自动补全,实现PL调试的图形化操作,帮助快速定位问题。此外,操作记录可追溯,多端灵活部署,适配多种场景。无论是中大型企业研发团队,还是不熟悉命令行的业务开发者,YDC都能显著优化开发体验,堪称YashanDB的“可视化IDE”。
|
6月前
|
PHP 数据库
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
|
9月前
|
存储 JSON 测试技术
【HarmonyOS Next开发】云开发-云数据库(二)
实现了云侧和端侧的云数据库创建、更新、修改等操作。这篇文章实现调用云函数对云数据库进行增删改查。
173 9
【HarmonyOS Next开发】云开发-云数据库(二)
|
8月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
304 2
|
9月前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
304 13

热门文章

最新文章