阿里Java开发手册~建表规约

news2024/11/15 17:41:03
1. 【强制】表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint
1 表示是, 0 表示否
说明: 任何字段如果为非负数,必须是 unsigned
正例: 表达逻辑删除的字段名 is_deleted 1 表示删除, 0 表示未删除。
2. 【强制】表名、字段名必须使用小写字母或数字 禁止出现数字开头,禁止两个下划线中间只
出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
正例: getter _ admin task _ config level 3_ name
反例: GetterAdmin taskConfig level _3_ name
3. 【强制】表名不使用复数名词。
说明: 表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数
形式,符合表达习惯。
4. 【强制】禁用保留字,如 desc range match delayed 等,请参考 MySQL 官方保留字。
5. 【强制】主键索引名为 pk_ 字段名;唯一索引名为 uk _ 字段名 普通索引名则为 idx _ 字段名。
说明: pk_ primary key uk _ unique key idx _ index 的简称。
6. 【强制】小数类型为 decimal ,禁止使用 float double
说明: float double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不
正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。
7. 【强制】如果存储的字符串长度几乎相等,使用 char 定长字符串类型。
8. 【强制】 varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000 ,如果存储长
度大于此值,定义字段类型为 text ,独立出来一张表,用主键来对应,避免影响其它字段索
引效率。
9. 【强制】表必备三字段: id , gmt _ create , gmt _ modified
说明: 其中 id 必为主键,类型为 unsigned bigint 、单表时自增、步长为 1 gmt _ create ,
gmt _ modified 的类型均为 date _ time 类型。
10. 【推荐】表的命名最好是加上 业务名称 _ 表的作用
正例: tiger _ task / tiger _ reader / mpp _ config
11. 【推荐】库名与应用名称尽量一致。
12. 【推荐】如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释。
13. 【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:
1 不是频繁修改的字段。
2 不是 varchar 超长字段,更不能是 text 字段。
正例: 商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存
储类目名称,避免关联查询。
14. 【推荐】单表行数超过 500 万行或者单表容量超过 2 GB ,才推荐进行分库分表。
说明: 如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。
15. 【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检
索速度。
正例: 如下表,其中无符号值可以避免误存负数,且扩大了表示范围。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins+Docker+Docker-Compose自动部署,SpringCloud架构公共包一个任务配置

前言 Jenkins和docker的安装,随便百度吧,实际场景中我们很多微服务的架构,都是有公共包,肯定是希望一个任务能够把公共包的配置加进去,一并构建,ok,直接上干货。 Jenkins 全局环境安装 pwd e…

建造者模式——复杂对象的组装与创建

1、简介 1.1、概述 建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式向客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。 建造者模式是较为复杂的创建型模式,它将客户端与包…

【chatGpt】关于websocket连接中对未授权的捕捉问题

目录 问题 有效提问 有效的细节提问 问题 一路上,通过简单的error进行判断弹出授权,会有很多乱弹的现象: (1)链路正常切换会断 (2)服务器没有启动会连接不上 (3)没…

Pytorch深度学习-----DataLoader的用法

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…

【Golang】基于OAuth2.0微信扫码实现客户端用户登录(原理+代码实现+视频讲解)

前言: 细心汇总,包括原理+配置+代码详细实现 文章目录 原理讲解什么是OAuth2.0解决方案授权码模式讲解认证流程Go语言实现微信扫码登录1. 内网穿透配置2. 微信测试账号申请3. 验证和微信服务器连接二维码生成回调地址测试原理讲解 什么是OAuth2.0 OAuth 2.0是一种授权协议,…

JavaScript学习 --消息摘要算法

消息摘要算法(也称哈希算法)是一种将任意大小的数据转换为一个固定大小的数据序列的算法。在JavaScript中,常见的消息摘要算法包括MD5、SHA-1、SHA-256等。它们适用于安全传输敏感数据、防篡改数据等场景。在本篇博客中,我们将介绍…

slurm/sbatch/srun 多步骤串行运行多个依赖性任务

在slurm系统下,有时候需要按步骤运行A、B、C三个任务,但是直接写在脚本里会同时提交,所以需要建立依赖关系。 错误做法: 搜索网上做法及slurm串行教程,做法多为如下,使用bash或python来按顺序/循环内来串…

顺序表详解

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大家三连关注,一起学习,一起进步&#…

NetApp FAS2750 和 FAS2820:适用于分布式企业和从远程到核心的 FAS

NetApp FAS2750 和 FAS2820:适用于分布式企业和从远程到核心的 FAS 拥有分布式企业和多个办公位置的客户希望使用这些系统进行虚拟化,以及为大型 FAS 和 AFF 系统提供简单且经济高效的备份和灾难恢复。 为什么要从 NetApp FAS 系列中选择一个型号&…

LLM / Python - json 使用详解

目录 一.引言 二.json 方法 1.json.dumps 2.json.dump 3.json.loads 4.json.load 三.json 参数 1.ensure_ascii 2.allow_nan 3.indent 4.sortKeys 5.Other 四.LLM 数据构建 1.json 数据构建 2.Train.py 五.总结 一.引言 上文中我们介绍了 LLama2-Chinese 的简…

ipad手写笔有必要买原装吗?质量好苹果平板平替笔推荐

因为iPad平板的强大,使得很多人群都用上了iPad,而且还在不断的普及。不管是用于绘画或者学习记笔记,都非常好用,但要是用来看电视剧玩游戏就没那么有价值了。如果你不打算购买昂贵的苹果电容笔,或者只是为了记录&#…

“数字中华 点亮未来”中华线上客户节 盛大开幕

2023年是中华保险数字化转型落地之年,峥嵘37载,中华保险在数字化转型上已经涌现了一批彰显辨识度、具有影响力的应用成果。7月15日,中华保险围绕数字化转型之路开展以“数字中华 点亮未来”为主题的37周年线上客户节活动,倾力打造…

直播平台源码开发提高直播质量的关键:视频编码和解码技术

在互联网日益发展的今天,直播平台成为人们互联网生活的主力军,直播平台功能的多样化与智能化使我们的生活有了极大地改变,比如短视频功能,它让我们既可以随时随地去发布自己所拍摄到的东西让世界各地的用户看到,也能让…

融合正余弦和折射反向学习的北方苍鹰优化算法,与金鹰/蜣螂/白鲸/霜冰算法对比...

今天的主角是:融合正余弦和折射反向学习的北方苍鹰优化算法(SCNGO),算法由作者自行改进,目前应该没有文献这样做。 改进策略参照的上一期改进的麻雀优化算法,改进点如下: ①采用折射反向学习策略初始化北方苍鹰算法个体…

【字节跳动青训营】后端笔记整理-3 | Go语言工程实践之测试

**本文由博主本人整理自第六届字节跳动青训营(后端组),首发于稀土掘金:🔗Go语言工程实践之测试 | 青训营 目录 一、概述 1、回归测试 2、集成测试 3、单元测试 二、单元测试 1、流程 2、规则 3、单元测试的例…

AQS抽象同步队列核心原理

CLH自旋锁 JUC中显式锁基于AQS抽象队列同步器,而AQS是CLH锁的一个变种。队列头结点可以获得锁,其他节点排队等候。 在争夺锁激烈的情况下,为了减少CAS空自旋(CAS需要CPU进行内部通信保证缓存一致性造成流量过大引起总线风暴&…

【代码随想录day21】二叉搜索树中的众数

题目 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按 任意顺序 返回。 假定 BST 满足如下定义&am…

Git移除commit过的大文件

前言:在提交推送本地更改至仓库时,误将大文件给提交了,导致push时报错文件过大,因此需要将已经commit的大文件移除后再push 若已知要删除的文件或文件夹路径,则可以从第4步开始 1.对仓库进行gc操作 $ git gc 2.查询…

ThinkPHP 一对多关联

用一对多关联的前提 多的一方的数据库表有一的一方数据库表的外键。 举例,用户获取自己的所有文章 数据表结构如下 // 用户表 useruser_id - integer // 用户主键name - varchar // 用户名称// 文章表 articlearticle_id - integer // 文章主键title - varchar …

WSL2安装google chrome浏览器

一. 环境: Windows 11 Ubuntu-22.04 二. 安装google-chrome步骤(官方文档): 1. 创建文件夹:mkdir chrome 2. 进入目录:cd chrome/ 3. 下载chrome压缩包:sudo wget https://dl.google.com/linux/direct/go…