1、除了一些说明字段, 其他字段不要设置成null (在phpmyadmin建表时不点选nul选项),统一设置not null并设置默认值, 默认值一定不要是NULL,特别是索引列,这样会导致索引失效,可以用0,0.000, ‘’代替
2、为了查询方便,可以有冗余字段(各表之间字段又重复), 但是前提是要有严格的同步控制逻辑
3、始终以小写+下划线间隔命名
4、尽量不要设置text属性的字段,除非存储富文本字段,不要使用BLOB类型,建议tinyint实现BLOB功能
5、索引是必须的, 但是可以不要外键约束,且必须注意索引失效的条件和相关优化!!
外键约束条件并不是一定要建立,比如一些数据表繁杂的应用就不建立建立外键关联:
- 使用外键有利于维持数据完整性和一致性,但是对于开发来说是非常不利的。
- 每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,而且需要更为复杂的错误捕获机制。
- 做数据处理时会受到很多的束缚,有些地方本来就可以允许有部分冗余,但是由于设计了外键约束,只能放弃。
- 出现BUG的时候追踪很麻烦。
索引失效的条件和相关优化参考
网友评论