数据库设计
toB 应用设计系列 - 导航 适用范围 本文仅适用于 mysql 数据库 原则 数据库只做存储使用, 计算 / 业务逻辑放到应用层 尽量遵循三范式 高级功能 禁止使用触发器 / 存储过程 / 函数 / 视图 触发器非常影响插入 / 更新 / 删除 的效率, 触发器的功能可由应用层来实现 一旦放开存储过程/函数的限制, 不能保证人们会用存储过程/函数来做什么, 极有可能在存储过程/函数里进行大量的运算, 或者将业务逻辑写入; 另外, 大多数缓存在应用层实现, 存储过程/函数就无法复用缓存 触发器 / 存储过程 / 函数 / 视图 没有版本管理 字段 通用字段 主键id: 尽量使用单一逻辑主键, 实体使用单一逻辑主键, 关联关系可使用复合主键; 坚决不使用业务主键, 只使用逻辑主键 实体一般拥有业务唯一标识 no 创建时间 create_time 更新时间 update_time 数据类型 字符串类型 定长字符串: char(n) 不定长字符串: varchar(n) 长文本 text 整数类型 无符号 unsigned 类型 范围(有符号) 范围(无符号) tinyint (-128,127) (0,255) smallint (-32 768,32 767) (0,65 535) mediumint (-8 388 608,8 388 607) (0,16 777 215)