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://www.mzph.cn/bicheng/8775.shtml

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

相关文章

ansible批量运维管理

Ansible是一种自动化运维工具,基于Python开发,主要用于自动化IT任务,如配置管理、应用程序部署、软件升级和系统管理等。它集合了众多运维工具(如puppet、cfengine、chef、func、fabric)的优点,实现了批量系…

AI终端设备的自动化分级

摘要: 大语言模型(LLM)被认为是通用人工智能(AGI)的潜在火花,为构建通用人工智能代理带来了希望。在此基础上,客户端设备在人工智能的帮助下不断发展,从基于应用程序(AP…

Centos 中如何汉化man命令

刚学Linux,记不住命令和选项,很依赖里面的 man 查看命令,但因为着实看不懂,有没有什么办法把man查看命令的信息改成中文 在CentOS 7中,你可以通过安装man-pages-zh包来获取中文的man手册。以下是具体的步骤&#xff1a…

外置网卡设置为Ad-hoc模式,实现多台电脑互相通信

三台电脑Ad-hoc通信 iwconfig查看网卡型号 ifconfig查看网卡ip 第一台电脑 sudo systemctl stop NetworkManager sudo iwconfig wlx90de803014a8 mode ad-hoc sudo iwconfig wlx90de803014a8 essid "CPS-IBSS" sudo iwconfig wlx90de803014a8 channel 1 sudo ip a…

Redis-1 缓存穿透、缓存击穿、缓存雪崩

缓存穿透 一.数据查询的流程 程序根据请求查询数据时,会先到redis中查询,如果redis中查到了目标数据,则直接返回;如果redis中没有目标数据,则到mysql中查找,找到目标数据后返回,同时将该数据写…

stm32f103zet6_RTC_1_介绍

RTC简介 实时时钟是一个独立的定时器。 RTC模块拥有一组连续计数的计数器,在相应软件配置下,可 提供时钟日历的功能。 修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复…

【Linux】常用基本指令

目录 食用说明 用户管理 whoami/who clear tree 目录结构和路径 pwd ls 文件 隐藏文件 常用选项 cd 家目录、根目录、绝对路径和相对路径 touch 常用选项 mkdir rmdir/rm man cp mv cat nano echo 输出重定向 > 输入重定向 < more/less head/…

C语言每日一练(12、水仙花数)

在编程的领域中&#xff0c;我们常常会遇到一些有趣而富有挑战性的问题。今天&#xff0c;让我们一起来探讨一个经典的编程题目——打印出所有的“水仙花数”。 所谓“水仙花数”&#xff0c;是指一个三位数&#xff0c;其各位数字的立方和等于该数本身。例如&#xff0c;153 …

springBoot异常总结

1.springBoot的主类和springBoot的 测试类名相同: .springBoot的主类和springBoot的 测试类名相同报异常&#xff1a; java.lang.ClassNotFoundException: junit.framework.ComparisonFailure //当src/main/java文件夹下有与src/test/java文件夹下相同名字的类时&#xff0c;…

csapp proxy lab part 1

host, hub, 路由器&#xff0c;和 交换机 当手机连接到局域网中时&#xff0c;它需要找到网络中的交换机&#xff08;Switch&#xff09;。这通常是通过 DHCP&#xff08;动态主机配置协议&#xff09;完成的。DHCP服务器负责向手机分配IP地址、子网掩码、网关地址等网络配置信…

ic基础|时钟篇02:关于时钟分频器的二三事

大家好&#xff0c;我是数字小熊饼干&#xff0c;一个练习时长两年半的ic打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结&#xff0c;并通过汇总成文章的形式进行输出&#xff0c;相信无论你是在职的还是…

【js开发记录笔记】js开发记录笔记

整理的函数以及注意点 css 强制!important includes 函数 //示例&#xff1a; Input: [1, 2, 3, 4, 5].includes(2); Output: true;Input: [1, 2, 3, 4, 5].includes(9); Output: false;方法 1.同步方法获取接口返回值: new Promise((resolve) > {dataList this.Addtree…

pgsql和mysql比较

pgsql相对于mysql的优势主要体现在以下几个方面&#xff1a; 稳定性和可靠性&#xff1a;PostgreSQL的稳定性极强&#xff0c;即使在崩溃、断电等灾难场景下也能表现出很好的抗打击能力。相比之下&#xff0c;很多MySQL用户都遇到过Server级的数据库丢失的情况。此外&#xff…

windows驱动开发-32位和64位

这部分其实是过时的知识点&#xff0c;毕竟win 11之已经不支持32位系统了&#xff0c;但是还是列出来吧。 32位主要是指x86体系&#xff0c;在早期&#xff0c;32位的应用程序和系统只支持4GB的内存地址寻址&#xff0c;这也是最大的特色之一&#xff0c;在那个时代&#xff0…

嵌入式开发八:STM32启动过程分析

本次给大家分析 STM32F4 的启动过程&#xff0c;这里的启动过程是指从 STM32 芯片上电复位执行的第一条指令开始&#xff0c;到执行用户编写的 main 函数这之间的过程。我们编写程序&#xff0c;基本都是用 C 语言编写&#xff0c;并且以 main 函数作为程序的入口。但是事实上&…

1.使用uniapp搭建微信小程序项目并引入前端组件资源

文章目录 1. 项目配置1.1. 新建vue3项目1.2. 关联云空间1.3. 运行到微信开发者工具 2. 前端组件2.1. uniCloud的内置组件和扩展组件2.2. uView3.02.3. 在uniapp项目引入uview3 1. 项目配置 1.1. 新建vue3项目 由于我们要使用vue3而不是vue2&#xff0c;所以要选好版本&#x…

CMakeLists.txt语法规则:条件判断中表达式说明四

一. 简介 前面学习了 CMakeLists.txt语法中的 部分常用命令&#xff0c;常量变量&#xff0c;双引号的使用。 前面几篇文章也简单了解了 CMakeLists.txt语法中的条件判断&#xff0c;文章如下&#xff1a; CMakeLists.txt语法规则&#xff1a;条件判断说明一-CSDN博客 CMa…

【GPT调用】本地使用python调用GPT接口

python调用GPT接口 环境变量设置主调用方法执行结果 环境变量设置 .env文件中配置GPT环境变量 api_key"你的GPT-API-KEY" urlhttps://ai-proxy.ksord.com/wps.openai.azure.com/openai/deployments/gpt-4-32k/chat/completions?api-version2023-09-01-preview主调…

中国结(科普)

中国结是一种手工编织工艺品&#xff0c;它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。 [1]它原本是由旧石器时代的缝衣打结&#xff0c;后推展至汉朝的仪礼记事&#xff0c;再演变成今日的装饰手艺。周朝人随身的佩戴玉常以中国结为装饰&#xff0c;而战国时代的铜…

1756jsp农产品销售管理系统Myeclipse开发mysql数据库C2C模式java编程计算机网页项目沙箱支付

一、源码特点 java 农产品销售管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0…