数据库(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. day01-2-依赖管理和自动配置

    依赖管理和自动配置 1.依赖管理 1.1什么是依赖管理 spring-boot-starter-parent 中还有父项目,声明了开发中常用的依赖的版本号 并且进行自动版本仲裁,即如果程序员没有指定某 ...

  2. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(11)-Charles如何模拟弱网环境

    1.前言 张三:"我写的软件好奇怪啊,在网络好的时候一点问题也没有,但是信号差的时候明显卡顿,看来我只能一直蹲在卫生间.电梯或者地铁(信号差)调bug了". Charles:&qu ...

  3. 自己动手从零写桌面操作系统GrapeOS系列教程——18.外设和IO

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 一.外设和I/O接口 前面我们介绍过冯·诺依曼结构包含5部分,其中输入设备和输出设备统称为外部设备,简称外设.常见的外设有鼠标.键盘.显示器.硬 ...

  4. Java面试——TCP与HTTP

    更多内容,移步 IT-BLOG 一.Session 和 Cookie 的区别 [1]Cookie 保存在客户端,未设置存储时间的 Cookie,关闭浏览器会话 Cookie 就会被删除:设置了存储时间 ...

  5. 使用Electron-builder将web项目封装客户端安装包 发布

    背景:之前用electron-packager将web项目打包成客户端时,exe文件只能在当前文件夹下运行,如果发送给别人使用 极不方便.所以我们可以用electron-builder将web项目封装 ...

  6. 重打包APK绕过签名校验

    这里先提一种针对性校强但简单好理解的办法,纯Java实现,代码大概也就50行不到吧. 还有更强的并且能过各种保护(反调试反HOOK反内存修改等等)的万能方法,不过较复杂,长篇大论的,等有空整理出来再提 ...

  7. 这可能是最全面的Spring面试题总结了

    Spring是什么? Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. Spring的优点 通过控制反转和依赖注入实现松耦合. 支持面向切面的编程,并且把应用业务逻辑和系统 ...

  8. JSTL标签fmt:formatDate格式化日期出错

    现象&背景: 异常: "org.apache.jasper.JasperException: 在 [115] 行处理 [/WEB-INF/jsp/modules/receivedya ...

  9. 单机最快的队列Disruptor解析和使用

    前言 介绍高性能队列Disruptor原理以及使用例子. Disruptor是什么? Disruptor是外汇和加密货币交易所运营商 LMAX group 建立高性能的金融交易所的结果.用于解决生产者 ...

  10. kubernetes(k8s)命名空间一直Terminating

    root@hello:~# kubectl get ns NAME STATUS AGE auth Terminating 34m default Active 23h kube-node-lease ...