数据库命名规范设计与常见错误规避指南
一、命名规范基本原则
数据库对象命名应遵循清晰性、一致性和可维护性原则。表名建议采用模块前缀+实体名称的结构,如user_info
,字段命名需避免使用保留字并保持全系统统一。推荐使用蛇形命名法(snake_case)并控制字符长度,MySQL字段名不超过64字符。
- 使用完整英文单词:
created_at
优于crt_dt
- 主键统一命名:建议使用
id
作为自增主键 - 禁用复数形式:
employee
而非employees
二、字段设计技术要点
字段类型选择直接影响存储效率和查询性能。电话号码字段应使用VARCHAR
类型避免前导零丢失,备注字段推荐TEXT
类型而非受限的VARCHAR
。日期字段需明确区分DATE
、DATETIME
和TIMESTAMP
的使用场景。
数据类型 | 适用场景 |
---|---|
DECIMAL(10,2) | 精确数值计算 |
VARCHAR(255) | 可变长度字符串 |
TINYINT(1) | 布尔值存储 |
三、规范化与数据架构
遵循第三范式(3NF)消除数据冗余,通过外键约束维护参照完整性。建议将大表拆分为主表(order
)和明细表(order_dtl
),建立清晰的ER关系模型。临时表应添加temp_
前缀,归档表使用bak_
前缀。
- 消除部分函数依赖
- 分解多值依赖
- 建立合理的索引视图
四、索引优化策略
在WHERE子句常用字段创建组合索引,避免全表扫描。每张表的索引建议控制在5个以内,定期使用EXPLAIN
分析执行计划。全文索引字段优先选择FULLTEXT
类型,时间字段建议建立降序索引。
五、典型错误案例分析
某电商平台将用户描述字段设为VARCHAR(255)
导致数据截断,后期改造为TEXT
类型后查询性能下降60%。另一案例因使用INT
存储电话号码导致国际区号丢失,最终改用VARCHAR(20)
并添加正则验证。