没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
内容概要:本文整理了21个设计MySQL表的经验准则,旨在帮助后端开发人员提升数据库表设计的质量。主要内容包括:命名规范,如表名、字段名需用小写字母且禁用拼音和缩写;选择合适的字段类型,如优先选用存储空间小的类型、使用decimal而非float/double存储金额;合理设计主键,推荐使用无业务含义的自增主键或UUID;控制字段长度,避免字段过多,单表字段不超过20个;优先使用逻辑删除而非物理删除以保持数据完整性;添加通用字段如create_time、modified_time;尽可能定义字段为NOT NULL;评估并合理使用索引,避免滥用;适当冗余字段以减少表关联;避免使用MySQL保留字;不推荐使用外键和存储过程,建议使用InnoDB存储引擎;统一字符集为utf8或utf8mb4;处理大字段时分离存储以提高效率;考虑分库分表应对大数据量;提供SQL编写优化建议如避免select *、优化深分页等。 适合人群:具备一定编程基础,尤其是从事后端开发的工程师,特别是对MySQL数据库有一定了解的技术人员。 使用场景及目标:适用于数据库设计和优化场景,目标是帮助开发人员构建高效、可扩展、易维护的数据库系统,确保数据一致性和查询性能。 其他说明:文章提供了大量实用的设计准则和最佳实践,不仅有助于新手快速掌握MySQL表设计的基础知识,也为有经验的开发人员提供了进一步优化数据库设计的参考。建议读者在实际项目中结合具体业务需求灵活运用这些准则。
资源推荐
资源详情
资源评论































【MySQL】MySQL 表设计的经验
前言
作 为 后 端 开发, 我 们 经 常 需 要 设 计 数 据 库 表 。 整 理 了 21 个 设 计 MySQL 表 的 经 验 准 则 , 分 享 给 大 家 , 希
望 大 家 看 完 会 有 帮 助 。
1. 命名规范
数 据 库 表 名 、 字 段 名 、 索 引 名 等 都 需 要 命 名 规 范 , 可 读 性 高 (一 般 要 求 用 英 文 ), 让 别 人 一 看 命 名 , 就 知 道
这 个 字 段 表 示 什 么 意 思 。
比 如 一 个 表 的 账 号 字 段 , 反 例 如 下 :
acc_no,1_acc_no,zhanghao
正 例 :
account_no,account_number
� 表 名 、字 段 名 必 须 使 用 小 写 字 母 或 者 数 字 ,禁 止 使 用 数 字 开 头 ,禁 止 使 用 拼 音 ,并 且 一 般 不 使 用
英 文 缩 写 。
� 主 键 索 引 名 为 pk_字 段 名 ; 唯 一 索 引 名 为 uk_字 段 名 ; 普 通 索 引 名 则 为 idx_字 段 名 。
2. 选择合适的字段类型
设 计 表 时 , 我 们 需 要 选 择 合 适 的 字 段 类 型 , 比 如 :
� 尽 可 能 选 择 存 储 空 间 小 的 字 段 类 型 ,就 好 像 数 字 类 型 的 ,从 tinyint、smallint、int、bigint
从 左 往 右 开 始 选 择
� 小 数 类 型 如 金 额 , 则 选 择 decimal, 禁 止 使 用 float 和 double。
� 如 果 存 储 的 字 符 串 长 度 几 乎 相 等 , 使 用 char 定 长 字 符 串 类 型 。
� varchar 是 可 变 长 字 符 串 , 不 预 先 分 配 存 储 空 间 , 长 度 不 要 超 过 5000。
� 如 果 存 储 的 值 太 大 , 建 议 字 段 类 型 修 改 为 text, 同 时 抽 出 单 独 一 张 表 , 用 主 键 与 之 对 应 。
� 同 一 表 中 , 所 有 varchar 字 段 的 长 度 加 起 来 , 不 能 大 于 65535. 如 果 有 这 样 的 需 求 , 请 使 用
TEXT/LONGTEXT 类 型 。
3. 主键设计要合理
主 键 设 计 的 话 ,最 好 不 要 与 业 务 逻 辑 有 所 关 联 。有 些 业 务 上 的 字 段 ,比 如 身 份 证 ,虽 然 是 唯 一 的 ,一 些 开
发 者 喜 欢 用 它 来 做 主 键 , 但 是 不 是 很 建 议 哈 。 主 键 最 好 是 毫 无 意 义 的 一 串 独 立 不 重 复 的 数 字 , 比 如 UUID,
又 或 者 Auto_increment 自 增 的 主 键 , 或 者 是 雪 花 算 法 生 成 的 主 键 等 等 ;
4. 选择合适的字段长度
先 问 大 家 一 个 问 题 , 大 家 知 道 数 据 库 字 段 长 度 表 示 字 符 长 度 还 是 字 节 长 度 嘛 ?
其 实 在 mysql 中 , varchar 和 char 类 型 表 示 字 符 长 度 , 而 其 他 类 型 表 示 的 长 度 都 表 示
字 节 长 度 。比 如 char(10)表 示 字 符 长 度 是 10,而 bigint( 4)表 示 显 示 长 度 是 4 个 字
节 ,但 是 因 为 bigint 实 际 长 度 是 8 个 字 节 ,所 以 bigint( 4)的 实 际 长 度 就 是 8 个 字
节 。
我 们 在 设 计 表 的 时 候 , 需 要 充 分 考 虑 一 个 字 段 的 长 度 , 比 如 一 个 用 户 名 字 段 ( 它 的 长 度 5~20 个 字 符 ) ,
你 觉 得 应 该 设 置 多 长 呢 ? 可 以 考 虑 设 置 为 username varchar( 32) 。字 段 长 度 一 般 设 置 为 2 的 幂 哈( 也
就 是 2 的 n 次 方 ) 。
5. 优先考虑逻辑删除,而不是物理删除
资源评论


奋进学堂
- 粉丝: 4950
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- XP-网络故障解决措施全集.doc
- 电气自动化在水利水电工程中的应用分析1.docx
- 时间触发通信:原理与应用
- 基于JSP的教学管理系统大学本科方案设计书.doc
- 基于PLC的物料分拣控制系统的设计.doc
- 实验项目管理-需求书.doc
- 最新高端简约英文版互联网科技金融商务工作计划总结PPT模PPT模板.pptx
- 移动通信技术与计算机网络.docx
- 面翻洪海广告设备有限公司项目管理书.doc
- 电网调度自动化系统的应用.pdf
- 互联网+时代高校线上线下混合式教学模式探究.docx
- 2017级大数据技术与应用专业人才培养方案.doc
- 论网络虚拟财产的民法界定.docx
- 基于 Python 实现自动驾驶的规划与控制代码
- 酒店无线网络覆盖解决方案.docx
- 电子科技16秋《供配电系统监控与自动化》在线作业2-辅导资料.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
