Principals Design Databases
17 June 2021
3个基础原则(任何系统)
- 结构清晰:表名、字段命名没有歧义,一眼看懂
- 唯一职责:一表一用,领域定义清晰,不存储无关信息,相关数据在一张表中
- 主键原则:设计不带物理意义的主键(例如名字作为主键,而名字可能变动);有唯一约束,确保幂等
4个扩展原则(影响系统的性能和容量)
- 长短分离:可与扩展,长文本独立存储;有合适的容量设计
- 冷热分离:当前数据与历史数据分离
- 索引完备: 有合适的索引方便查询
- 不使用关联查询:不使用一切的SQL Join操作,不做2个表或更多表的关联查询 - 尤其是两个表特别大的时候
- Case:查询商家每一个订单的金额
- Select s.shop_name, o.id as order_id, o.total_amount From shop s, order o Where s.id = o.shop_id
3个完备性原则(任何系统)
- 完整性:保证数据的准确性和完整性,重要的内容都有记录
- 可追溯:可追溯创建时间,修改时间,可以逻辑删除 - 而不是物理删除,逻辑删除也就是删除本身操作也做记录方便追溯
- 一致性原则:数据之间保持一致,尽可能避免同样的数据存储在不用表中