数据库(Database)中的缺省字段(也称为默认字段),就是在一般情况下,每个数据表(Table)必须包含的字段(Field),这类字段用于满足特定的数据需求,字段值的填充或更改一般遵照一定的逻辑要求。缺省字段的设计应该考虑到数据的完整性和一致性,以确保数据的正确与可靠,设计合理的表字段对于数据的有效管理和高效查询至关重要。

**boot-admin** 是一款采用前后端分离模式、基于 SpringCloud 微服务架构的SaaS后台管理框架。系统内置基础管理、权限管理、运行管理、定义管理、代码生成器、办公管理和流程管理7个功能模块,集成分布式事务 Seata、工作流引擎 Flowable、业务规则引擎 Drools、后台作业调度框架 Quartz 等,技术栈包括 Mybatis-plus、Redis、Nacos、Seata、Flowable、Drools、Quartz、SpringCloud、Springboot Admin Gateway、Liquibase、jwt、Openfeign、I18n等。
> [项目源码仓库github](https://github.com/soft1314/boot-admin)
> [项目源码仓库gitee](https://gitee.com/soft1314/boot-admin-vue)
## 字段命名规范

在设计数据库表字段时,应该遵循简洁明了、易于阅读、有意义的原则,并且应该尽可能遵循以下命名规范,这有助于提高代码的可读性和可维护性。
1. 字段名采用【小写字母】和【下划线】的组成,命名简洁明确;
2. 禁止使用数据库关键字,如:name,time ,datetime,password等;
3. 名称不易太长,一般不超过三个英文单词;
4. 名称一般使用名词或者动宾短语;
5. 用单数形式表示名称;
6. 字段名不允许“IS_XXX”,“SET_XXX”,“GET_XXX”等形式;

## boot-admin 项目中实际使用的缺省字段
### 基本缺省字段
| 序号| 字段| 名称| 数据类型| 主键| 非空| 默认值|枚举| 备注说明|
|----|----|----|----|----|----|----|----|----|
|1| GUID| 主键| NVARCHAR2(38)| √| √| ||插入时应用程序填充
|2| CREATE_BY| 记录创建者| NVARCHAR2(100)| |√ |||插入时应用程序填充
|3| CREATE_TIME| 记录创建时间| DATE| |√ |||插入时应用程序填充
|4| MODIFY_BY| 记录最后修改者| NVARCHAR2(100)| |√|||应用程序触发更新
|5| MODIFY_TIME| 记录最后修改时间| DATE| |√|||应用程序触发更新
|6| DATESTAMP| 时间戳| DATE| | √| sysdate||数据库触发更新
|7| ENABLED| 启用状态| NVARCHAR2(1)| | √ || ENABLED|应用程序触发更新
|8| DELETED| 删除状态| NVARCHAR2(1)| | √ || DELETED|逻辑删除应用程序触发更新
|9| VERSION| 乐观锁| INT| | √
|10| REMARKS| 备注| NVARCHAR2(900)|
|11| TENANT_ID_| 租户ID| NVARCHAR2(38)| | √|||多租户数据隔离

### 层次数据额外缺省字段
| 序号| 字段| 名称| 数据类型| 主键| 非空| 默认值|枚举| 备注说明|
|----|----|----|----|----|----|----|----|----|
|12| LEAF| 是否末级| NVARCHAR2(1)| | √ || YESNO
|13| PARENT_GUID| 父级GUID| NVARCHAR2(38)| | √
|14| SORT| 顺序号| INT| | √
## 总结
缺省字段设计是一个比较重要的问题,需结合项目实际仔细考虑和设计。通过合理地设计缺省字段,我们可以避免不必要的复杂性问题,提高数据库的性能和可靠性,以满足更多业务需求。

boot-admin 项目数据库缺省字段设计之最佳实践的更多相关文章

  1. RESTful接口设计原则/最佳实践(学习笔记)

    RESTful接口设计原则/最佳实践(学习笔记) 原文地址:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api 1 ...

  2. atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.

    atitit. 日志系统的原则and设计and最佳实践总结. 1. 日志系统是一种不可或缺的单元测试,跟踪调试工具 1 2. 日志系统框架通常应当包括如下基本特性 1 1. 所输出的日志拥有自己的分类 ...

  3. Prometheus Metrics 设计的最佳实践和应用实例,看这篇够了!

    Prometheus 是一个开源的监控解决方案,部署简单易使用,难点在于如何设计符合特定需求的 Metrics 去全面高效地反映系统实时状态,以助力故障问题的发现与定位.本文即基于最佳实践的 Metr ...

  4. [转]10个有关RESTful API良好设计的最佳实践

    Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的. 通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GE ...

  5. 10个有关RESTful API良好设计的最佳实践

    Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的. 通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GE ...

  6. 10个有关RESTful API良好设计的最佳实践(转)

    原文地址:http://www.jdon.com/soa/10-best-practices-for-better-restful-api.html Web API已经在最近几年变成重要的话题,一个干 ...

  7. MySQL 性能优化 30个数据库设计的最佳实践

    数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程. ...

  8. QingStor 对象存储架构设计及最佳实践

    对象存储概念及特性 在介绍 QingStor️对象存储内部的的架构和设计原理之前,我们首先来了解一下对象存储的概念,也就是从外部视角看,对象存储有什么特性,我们应该如何使用. 对象存储本质上是一款存储 ...

  9. Pipeline流水线设计的最佳实践

    谈到到DevOps,持续交付流水线是绕不开的一个话题,相对于其他实践,通过流水线来实现快速高质量的交付价值是相对能快速见效的,特别对于开发测试人员,能够获得实实在在的收益.很多文章介绍流水线,不管是j ...

  10. Java电商支付系统手把手实现(二) - 数据库表设计的最佳实践

    1 数据库设计 1.1 表关系梳理 仔细思考业务关系,得到如下表关系图 1.2 用户表结构 1.3 分类表结构 id=0为根节点,分类其实是树状结构 1.4 商品表结构 注意价格字段的类型为 deci ...

随机推荐

  1. IO流详解及常用方法

    1.1. 什么是IO流 IO流: Input/Output Stream 流: 指的是一串流动的数据, 在数据在流中按照指定的方向进行流动. 实现数据的读取.写入的功能. 1.2. IO流的使用场景 ...

  2. 机器学习08DAY

    线性回归 波士顿房价预测案例 步骤 导入数据 数据分割 数据标准化 正规方程预测 梯度下降预测 # 导入模块 import pandas as pd # 导入数据 from sklearn.model ...

  3. l洛谷第二题

    题目描述 给定一个 n\times nn×n 的正方形棋盘,几位玩家在上面玩三子棋. 三子棋的规则是每位玩家轮流写下一个字母,同一名玩家的字母相同.当有一名玩家在行.列或者斜线上连续组成了 33 个自 ...

  4. How to implement UDP protocal

    Server implementation Open a socket on the server that listens to the UDP requests. (I've chosen 888 ...

  5. kubectl管理多个集群配置

    需求描述:在一台机器上通过kubectl管理多个Kubernetes集群. 操作过程:将各集群的kubectl config文件中的证书内容转换,通过命令创建config文件:通过上下文切换使用不同集 ...

  6. [Linux]网络检测工具之iperf

    1 安装网络检测工具 iperf step1.0 iperf的简介 [摘] iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题.它在遇到网络速度问题时特别有用,通 ...

  7. 浏览器层面优化前端性能(1):Chrom组件与进程/线程模型分析

    现阶段的浏览器运行在一个单用户,多合作,多任务的操作系统中.一个糟糕的网页同样可以让一个现代的浏览器崩溃.其原因可能是一个插件出现bug,最终的结果是整个浏览器以及其他正在运行的标签被销毁. 现代操作 ...

  8. 逍遥自在学C语言 | 位运算符^的高级用法

    前言 在上一篇文章中,我们介绍了|运算符的高级用法,本篇文章,我们将介绍^ 运算符的一些高级用法. 一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位上场的是和我们一 ...

  9. sql计算众数及中位数

    众数 众数: 情况①:一组数据中,出现次数最多的数就叫这组数据的众数. 举例:1,2,3,3,4的众数是3. 情况② :如果有两个或两个以上个数出现次数都是最多的,那么这几个数都是这组数据的众数. 举 ...

  10. 实时分布式低延迟OLAP数据库Apache Pinot探索实操

    @ 目录 概述 定义 特性 何时使用 部署 Local安装 快速启动 手动设置集群 Docker安装 快速启动 手动启动集群 Docker Compose 实操 批导入数据 流式导入数据 概述 定义 ...