Mysql 数据库 开发规范

 

(一)建表规约

强制规约

1. 表达是否概念的字段

        使用  is_xxx(is_used)   的方式命名

 2. 若字段的数据类型为非负数

        类型则为 unsigned

 3. 若字段的数据类型为 unsigned tinyint

        1表示是,0 表示否

 

 4 . 表名、字段名需 使用小写字母 或 数字

        正例:getter_admin , task_config , level3_name

        反例:GetterAdmin , taskConfig , level_3_name

 5. 表名不能使用负数

        正例: user

        反例: users

 6. 字段不能使用 mysql 保留字

        例如:ADD、ALL、ALTER、ANALYZE、AND、AS、ASC、

BEFORE、BETWEEN等

 

 7.  唯一索引

        使用 uk_字段名

 8.  普通索引

        使用 idx_字段名

 9. 小数类型

        正例: decimal          

        反例: float、double      存储时存在精度损失问题

        若存储的数据范围超过 decimal 的 范围, 建议将将数据拆成整数和小数分开存储

 

 10. 存储的  字符串长度  几乎相等

        使用   定长char类型

 

 11. varchar  字符串长度   >  5000

        改使用  text类型   避免影响  其他字段的索引效率

建议规约

1. 推荐 表的命名   “业务名称_表的作用” 

        正例: tiger_task/tiger_reader/mpp_config

2. 数据库名 应与  应用名称 一致

3. 如果修改字段, 需要加上注释

4. 单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。
        说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

5. 合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检
索速度。
        正例:人的年龄用unsigned tinyint(表示范围0-255,人的寿命不会超过255岁);

        海龟就必须是smallint,

        太阳的年龄,就必须是int;

        如果是所有恒星的年龄都加起来,那么就必须使用bigint。

(二)索引规约

之后更新

(三)SQL规约

之后更新

【注】参考阿里巴巴开发手册 第三节

资料获取:

链接:https://pan.baidu.com/s/11FmO-NoYs7jyfSw8lxcn1w
提取码:ylnb
--来自百度网盘超级会员V3的分享

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

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

相关文章

OpenGVLab/InternVL-Chat-V1-5-Int8

openedai-vision 代码仓库 OpenGVLab/InternVL-Chat-V1-5-Int8 模型文件地址 示 算力平台AutoDL df -h /root/autodl-tmp 安装 克隆我们的仓库并跳转到相应目录 2. 创建 conda 环境 conda create -n inter python3.8 -y…

小麦穗检测数据集VOC+YOLO格式6508张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6508 标注数量(xml文件个数):6508 标注数量(txt文件个数):6508 标注…

为什么选择ATECLOUD自动化测试平台?

在当今飞速发展的时代,一切都在不断进步与变革,电测行业也由手动测试逐步转向了自动化测试。但是随着科技的发展,对于产品的测试要求也越来越高,传统的自动化测试系统已经无法满足用户日益增长的测试需求,全新的ATE测试…

Spring+Vue的卓越托管中心管理系统的设计与实现+PPT+论文+讲解+售后

相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低运营人员成本,实现了卓越托管中心管理系统的标准化、制度化、程序化的管理,有效地防止了卓越托管中心管理系统的随意管理,提高了信息的处理速度和精确度,能…

苹果Mac用户下载VS Code(Universal、Intel Chip、Apple Silicon)哪个版本?

苹果macOS用户既可以下载通用版(Universal),软件将自动检测用户的处理器并进行适配。 也可以根据型号下载对应CPU的版本: 使用Intel CPU的Mac电脑可下载Intel Chip版本; 使用苹果自研M系列CPU的Mac电脑下载Apple Si…

设备通过海康ehome5.0接入视频汇聚平台EasyCVR,语音对讲一直断开是什么原因?

视频汇聚综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备,平台能在复杂的网络环境中(专网、局域网、广域网、VPN、公网等)将前端海量的设备进行统一集中接入与视频汇聚管理。视频监控/集中存储系统EasyCVR平台可支持国标GB28…

Kafka 业务日志采集最佳实践

简介 Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据流管道和应用程序。在收集业务日志的场景中,Kafka 可以作为一个消息中间件,用于接收、存储和转发大量的日志数据。将 Kafka 与其他系统(如 Elasticsearch、Flume、…

春游江淮 请来池州|一起看看石台这条“天路”有多美

自驾石台天路 石台天路位于安徽省石台县,西起杜村蓬莱仙洞,东起七都镇,全程约65公里,其中核心路段海拔均在650米以上,最高处海拔坐标位置901米,自驾其中,一路穿越山乡秘境,丛林、山脉、古村、古桥、流水、人家……扑面而来。 沿着蜿蜒的山路前行,一路上的风景如诗如画,青山如黛…

【资源分享】PyCharm2020安装教程

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

IST——In-System-Test

1、背景 安全性是自动驾驶平台的关键特性之一,而这些架构中使用的半导体芯片必须保证ISO 26262标准所要求的功能安全方面。为了监控由于现场缺陷导致的故障,在启动和/或关闭期间会自动运行系统内结构测试。当系统内测试(IST,In-Sy…

每日两题 / 2. 两数相加 19. 删除链表的倒数第 N 个结点(LeetCode热题100)

2. 两数相加 - 力扣(LeetCode) 高精度加法,用vector保存两个操作数,进行高精度加法后,将保存结果的vector转换成链表即可 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNod…

QLineEdit 最右侧添加按钮

如果采用QLineEdit + QPushButton的方式的话,无法将按钮放到QLineEdit的输入框内部,所以下面的方法可以将按钮放到QLineEdit内部的最右侧,效果: 代码如下: QLineEdit* editor = new QLineEdit(parent); QToolButton* btn = new QToolButton; btn->setText("...&q…

【组合数学】2842. 统计一个字符串的 k 子序列美丽值最大的数目

本文涉及知识点 组合数学汇总 LeetCode 2842. 统计一个字符串的 k 子序列美丽值最大的数目 给你一个字符串 s 和一个整数 k 。 k 子序列指的是 s 的一个长度为 k 的 子序列 ,且所有字符都是 唯一 的,也就是说每个字符在子序列里只出现过一次。 定义 f…

PPPoE实验新手必备:从0到1的网络配置指南!

5月18日,思科华为初级网工课程,等你免费试听 V:glab-mary 今天带大家学习一下华为PPPoE实验配置 01、实验拓扑 02、实验需求 1.完成PPP封装 2.完成PPP的PAP验证 3.完成PPP的CHAP验证 4.完成R1和R2之间的PPPOE 03、实验步骤 a . PPP封…

揭秘依赖注入:软件开发人员的基本指南

Dependency injection (DI) is a design pattern and programming technique to manage dependencies between different components. 依赖注入(DI)是一种用于管理不同组件之间依赖关系的设计模式和编程技术。 In DI, the dependencies of a class or ot…

您可以使用WordPress创建的19种网站类型

当人们决定为什么他们应该使用WordPress时,我们经常会被问到“WordPress可以做[空白]吗?答案大多是肯定的。在本文中,我们将向您展示您可以使用WordPress创建的19种不同类型的网站,而无需学习任何编程技巧。 目录 隐藏 1 开始使用…

Java -- (part23)

一.网络编程 1.概述 在网络通信协议下,不同计算机上运行的程序,进行数据传输 2.软件架构 CS架构:客户端和服务端 BS架构:浏览器和服务端 3.服务器概念 安装了服务器软件的计算机 4.通信三要素 IP地址 a.概述 计算机的唯一标识,用于两台计算机之间的链接 b.特殊的IP…

[华为OD] C卷 dfs 特殊加密算法 100

题目: 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。 规则如下 1•明文为一段数字串由0-9组成 2.密码本为数字0-9组成的二维数组 3•需要按明文串的数字顺序在密码本里找到同样的数字串…

组件通信-props详解

目录 一、什么是prop 二、props校验 三、组件中prop和data的区别 一、什么是prop Prop定义:组件上注册的一些自定义属性。 Prop作用:向子组件传递数据。 特点: 可以传递任意数量的prop可以传递任意类型的prop 二、props校验 组件的pr…

三种滤波(EKF、UKF、CKF)的对比,含MATLAB源代码

使用MATLAB模拟三维的滤波,包含扩展卡尔曼滤波EKF、无迹卡尔曼滤波UKF、容积卡尔曼滤波CKF。 状态更新和观测更新均为非线性的,模拟一定强度的机动性,可用于卡尔曼滤波方法的对比学习,自己修改成需要的运动模型后,可以用于组合导航(GPS+DVL形式)。 运行结果 真值的三轴…