一、数据库设计原则
1.考虑存储成本:
- ·不在数据库中存储图片、文件、视频等大数据。
- ·在某些历史数据可清理的场景,建议使用分区表,通过删除分区,可以很容易的删除数据
2.考虑读写性能:
- ·使用执行高效的sq1语句。不建议多表联合查询
- ·拒绝大sq1语句、大事务、大批量操作。--大量数据更新,进入DB时,需要批量操作,一个事务不能高于5000条
3.考虑技术一致性、可迁移性:
- ·数据库及表统一使用UTF8字符集
- ·禁止使用存储过程和触发器、视图、自定义函数、可移植性差的函数等
4.考虎虑数据安全性:
- ·不允许物理删除数据行,建议统-使用is_deleted字段实现逻辑删除。
- ·物理删除恢复数据非常困难,误删代价非常大。
- ·物理删除会让数据的主键值变的不连续,不连续的主键值会让分页查询的速度变慢。
- ·物理删除既不能料放磁盘空间,而目会产生大量的碎片,导致索引频繁断裂,影响SOL执行计划的稳定性,同时,在碎片回收时,会耗用大量的CPU,磁盘空间,影响表的正常DML操作。
- ·物理删除会导致大数据抽数或其他数据同步的场景数据异常,对于数据的分析处理会有错误,修数重跑会很麻烦。
二、命名规范
- ·表和列禁止使用关键字和保留字命名。
- ·数据库、表、列、索了命名统使用小写。
- ·表名全小写字母,使用单数名词,用连接多个单词,建议加上业务前缀,比如:user_log。
- ·唯一索引前缀为uk_,普通索引前缀为idx_,索引名