MySQL 系统学习 第五阶段:企业级 MySQL 实战开发 第一章:企业数据库设计规范
一、企业数据库设计流程企业开发一般遵循下面的流程需求分析 ↓ 抽取业务实体 ↓ 分析实体之间关系 ↓ 设计表结构 ↓ 设计索引 ↓ 评审数据库设计 ↓ 正式建表例如开发一个图书管理系统。需求用户可以 借书 还书 查看图书首先抽取实体用户User 图书Book 借阅记录BorrowRecord然后分析关系User │ │ 1 : N │ BorrowRecord │ │ N : 1 │ Book最后再开始建表。不要一开始就写CREATE TABLE。二、企业数据库命名规范数据库命名是企业开发中最容易忽视但影响长期维护的重要部分。1. 表名推荐user role permission department order order_item login_log不推荐User USER tb_user userTable为什么因为全小写更统一。Linux 对大小写敏感。不同数据库MySQL、PostgreSQL兼容性更好。2. 多个单词使用下划线推荐order_item user_role login_log create_time不推荐orderItem LoginLog CreateTime数据库一般使用snake_case下划线命名而 Java/TypeScript 使用camelCase驼峰命名。例如数据库create_timeTypeORM EntitycreateTimeORM 会负责映射。三、字段命名规范推荐id username password phone email status create_time update_time deleted不要写uname pwd num time1 flag因为半年以后你自己都不知道flag ?代表什么。四、主键设计规范 ⭐⭐⭐⭐⭐企业项目几乎每张表都有id BIGINT PRIMARY KEY AUTO_INCREMENT为什么因为主键必须唯一不为空不修改为什么不用用户名作为主键例如username Tom如果用户改名Tom ↓ Jack所有关联数据都需要修改。所以用户名不能作为主键。为什么推荐 BIGINT很多初学者id INT其实INT 最大2147483647约21 亿。互联网项目很容易达到。企业通常BIGINT最大约9 × 10¹⁸几乎够用了。五、公共字段设计 ⭐⭐⭐⭐⭐企业项目几乎每张表都有这些字段id create_time update_time deleted例如CREATE TABLE user( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50), create_time DATETIME, update_time DATETIME, deleted TINYINT DEFAULT 0 );create_time表示创建时间。例如2026-07-13 10:30:00作用查看什么时候创建。update_time表示最后修改时间。例如修改用户名。自动更新update_time方便排查问题。deleted软删除。0 正常1 删除为什么后面讲。六、软删除Soft Delete⭐⭐⭐⭐⭐很多初学者删除DELETE FROM user WHERE id1;直接删除。企业很多不会这样。例如用户注销账号。如果直接DELETE那么订单user_id怎么办找不到用户。所以企业更多UPDATE user SET deleted1 WHERE id1;数据仍然存在。只是查询WHERE deleted0这样既能恢复。又能保证历史数据完整。七、状态字段设计很多业务不要多个布尔字段。例如错误is_enable is_lock is_delete推荐一个status例如0 禁用 1 正常 2 锁定 3 审核中以后新增4 冻结更方便。八、金额设计很多人喜欢price FLOAT错误。原因浮点数存在精度误差。例如0.1 0.2 0.3000000004企业必须DECIMAL(10,2)例如price DECIMAL(10,2)表示99999999.99九、时间字段设计推荐DATETIME例如create_time DATETIME为什么DATETIME表示2026-07-13 14:30:20更直观。很多互联网项目也会BIGINT保存毫秒时间戳。例如1752385200000适合前后端统一处理。十、是否允许 NULL企业建议尽量避免 NULL。例如错误phone VARCHAR(20) NULL推荐phone VARCHAR(20) NOT NULL DEFAULT 为什么因为SQL 判断IS NULL比较特殊。还影响索引和统计。十一、字段长度设计不要username VARCHAR(500)实际上用户名一般VARCHAR(50)即可。例如字段推荐用户名VARCHAR(50)手机号VARCHAR(20)邮箱VARCHAR(100)密码哈希VARCHAR(255)合理长度可以减少存储空间提高缓存利用率。十二、企业建表示例CREATE TABLE user ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 主键ID, username VARCHAR(50) NOT NULL COMMENT 用户名, phone VARCHAR(20) NOT NULL DEFAULT COMMENT 手机号, status TINYINT NOT NULL DEFAULT 1 COMMENT 状态, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, deleted TINYINT NOT NULL DEFAULT 0 COMMENT 是否删除 );这里还加入了COMMENT字段注释方便维护。DEFAULT默认值。ON UPDATE CURRENT_TIMESTAMP自动更新时间。十三、企业数据库设计规范总结规范推荐做法表名小写 下划线字段名小写 下划线主键BIGINT AUTO_INCREMENT金额DECIMAL时间DATETIME公共字段id、create_time、update_time、deleted状态status不使用多个 is_xxx删除软删除字段长度按业务合理设置NULL尽量不用使用 NOT NULL DEFAULT字段注释使用 COMMENT 本章核心一句话企业数据库设计追求的不是能用而是易维护、易扩展、高性能。良好的数据库设计可以让项目在多年迭代中依然保持清晰、稳定。本章思考题为什么企业推荐使用BIGINT作为主键而不是INT或username企业推荐使用BIGINT AUTO_INCREMENT作为主键因为它容量大、稳定、不受业务变化影响。为什么金额字段必须使用DECIMAL而不能使用FLOAT或DOUBLE因为FLOAT 和 DOUBLE 属于浮点数会产生精度误差而金额必须保证精确计算。为什么很多企业采用软删除而不是直接执行DELETE数据逻辑上删除物理上仍然保留。为什么数据库字段通常使用snake_case下划线命名而 Java/TypeScript 使用camelCase驼峰命名因为这是各自领域长期形成的规范。为什么推荐使用status字段而不是多个is_xxx布尔字段因为status 更容易扩展也更容易维护。

相关新闻

2026年注浆泵厂家选型参考:从产品矩阵、技术路径到适用场景的客观梳理

2026年注浆泵厂家选型参考:从产品矩阵、技术路径到适用场景的客观梳理

注浆泵作为矿山堵水、地质钻探、煤矿井下瓦斯抽放与探放水、水利水电帷幕灌浆、铁路公路地基加固、高层建筑基坑止水、非开挖水平定向钻进、石油天然气及页岩气开采等领域的关键流体输送设备,其选型直接关系着冲洗液供给稳定性、注浆压力闭环能力以及整机全生命周期…

2026/7/13 22:26:45 阅读更多 →
【工具】开发工具红黑榜 (TCP测试/HTTP测试/SHELL工具/串口工具……)

【工具】开发工具红黑榜 (TCP测试/HTTP测试/SHELL工具/串口工具……)

目录 1、C/C工具 几个C的在线工具 在线编译器 vcpkg C 包管理器 参考网站 2、串口SSH调试工具 SSH/串口 工具 TCP/UDP测试工具 3、网络测试工具 带宽、丢包率、抖动测试工具 IP扫描工具 压力(性能)测试 网络监测软件 单机模拟千万并发的工…

2026/7/13 22:24:44 阅读更多 →
Copilot解释功能不为人知的「私有模式」:绕过公共训练数据,直连本地代码知识图谱(仅限v1.9.2+)

Copilot解释功能不为人知的「私有模式」:绕过公共训练数据,直连本地代码知识图谱(仅限v1.9.2+)

更多请点击: https://kaifayun.com 第一章:Copilot解释功能不为人知的「私有模式」:绕过公共训练数据,直连本地代码知识图谱(仅限v1.9.2) Copilot v1.9.2 引入了一项隐藏但关键的运行时能力——「私有模式…

2026/7/13 22:24:44 阅读更多 →

最新新闻

Krea2与ComfyUI工作流:AI人设图生成实战指南

Krea2与ComfyUI工作流:AI人设图生成实战指南

1. 先搞清楚 Krea2 在 ComfyUI 里到底能做什么如果你在找能稳定生成人物设定图(人设图)的方案,Krea2 配合 ComfyUI 的工作流值得先试一次。这个组合最直接的价值是:用相对简单的配置,在普通显卡上跑出风格可控、细节丰…

2026/7/13 23:19:00 阅读更多 →
在线数据科学教育的可及性:高性价比学习路径与能力交付

在线数据科学教育的可及性:高性价比学习路径与能力交付

1. 项目概述:当数据科学教育从“精英专属”变成“按需取用”“An Online Data Science Degree/Certificate is Within Reach — With Lots of Affordable Options”——这句话不是招生简章里的漂亮话,而是我过去三年深度跟踪、横向比对、亲自试听、甚至帮…

2026/7/13 23:15:00 阅读更多 →
设备故障让我损失了200万:我用时序模型把维护从被动变主动

设备故障让我损失了200万:我用时序模型把维护从被动变主动

一、背景:被动维修让我损失了200万那次事故我记忆犹新。凌晨2点,值班工程师接到报警,光刻机腔室真空度骤降。排查后发现是腔室密封件老化导致杂质进入,整整72小时停机,产能损失140万,返工费用60万,还因为延…

2026/7/13 23:15:00 阅读更多 →
重叠网格技术:CFD复杂流动模拟的高效网格解决方案

重叠网格技术:CFD复杂流动模拟的高效网格解决方案

这次我们来看一个在计算流体力学(CFD)中非常实用的技术——重叠网格(Overset Grid)。如果你在做复杂几何体绕流、多体相对运动或飞行器外流场模拟时遇到了网格生成困难,这个技术可能会成为你的解决方案。重叠网格的核心…

2026/7/13 23:12:59 阅读更多 →
VOCs在线监测系统部署实战:4步完成厂区固定点与移动端数据联动

VOCs在线监测系统部署实战:4步完成厂区固定点与移动端数据联动

VOCs在线监测系统部署实战:4步完成厂区固定点与移动端数据联动在工业环保监管日益严格的背景下,挥发性有机物(VOCs)的实时监测已成为石化、制药、涂装等行业的刚需。传统的人工采样检测方式不仅滞后,更难以捕捉突发性排…

2026/7/13 23:12:59 阅读更多 →
STM32H750与TMC7300的有刷电机控制方案详解

STM32H750与TMC7300的有刷电机控制方案详解

1. TMC7300与STM32H750XB的硬件协同架构解析有刷直流电机控制系统的核心在于驱动芯片与微控制器的协同设计。TMC7300作为Trinamic公司推出的高效能电机驱动器,其内部集成MOSFET桥路可支持高达2.8A的持续电流输出。与STM32H750XB这款Cortex-M7内核微控制器配合时&…

2026/7/13 23:12:59 阅读更多 →

日新闻

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:01:19 阅读更多 →
浦东旧模块回收哪家强?专业评测带你一探究竟

浦东旧模块回收哪家强?专业评测带你一探究竟

于科技迅猛飞速迭代的当下此刻, 旧模块的回收处置, 不但关联着资源的再度利用, 而且更牵扯到数据安全以及环保合规事宜。你是不是也正为那堆积得如同山峦般的旧模块而发愁? 是不是不清楚该怎样安全且高效地去处理它们? 别忧心烦恼, 就在今日, 我会以具备权威影响力的自媒体博…

2026/7/13 0:01:19 阅读更多 →
卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

2026/7/13 0:05:20 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/13 4:38:38 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/13 4:38:40 阅读更多 →

月新闻