MySQL Schema 设计与管理
MySQL Schema 设计与管理 数据库 Schema 是应用系统数据模型的基础。一个设计合理的 Schema,可以让业务开发更加简单,也能降低查询性能问题、数据不一致以及后期数据库迁移的成本。 Schema 设计并不只是“建几张表、加几个字段”,而是需要综合考虑 业务模型、数据类型、约束、索引、数据增长、查询方式以及后续变更。 本文从实际项目出发,介绍 MySQL Schema 的设计方法、管理方法,并通过一个简单的业务案例说明如何从业务模型逐步设计数据库。 1. 什么是 MySQL Schema 在 MySQL 中,Schema 通常可以理解为数据库本身,例如: CREATE DATABASE user CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; 然后在 Schema 中创建表: user ├── users ├── roles ├── permissions ├── user_roles └── audit_logs 在实际项目中,我们通常会同时讨论两个层面的设计: Schema 级设计:字符集、排序规则、数据库命名等 Table 级设计:表结构、字段、约束、索引、关联关系等 因此,Schema 设计本质上是在设计整个数据模型。 一个好的数据库设计通常需要解决几个问题: 业务数据如何存储? ↓ 表与表之间是什么关系? ↓ 字段应该使用什么类型? ↓ 哪些数据必须保证唯一? ↓ 哪些查询需要索引? ↓ 数据量增长后怎么办? ↓ 数据库结构如何持续演进? 2. Schema 设计的基本方法 数据库设计不要从“我要建哪些表”开始,而应该从业务模型开始。 例如一个简单的项目管理系统:...