日期:2014-05-16  浏览次数:20329 次

Arc-05-19- 数据库设计总结

以下几条经验从别处 K 来的,我也比较认同。

?

1. 不依赖单一数据库,尽量不用数据库的特性;

2. 大表设计;

3. 减少关联查询的表数量,实在要关联,控制在3个以内;

4. 表设计时能冗余就冗余,数据的一致性靠业务逻辑去控制;

5. 抛弃外键,不要依靠底层db给你检查数据的不一致;

6. 查询语句中尽量不用in,not,left join,right join;

7. 数据库字段设计尽量设计成非空的,便于作索引;

8. 对于查询条件用到的字段,一定要索引;

9. 查询条件中,尽量避免用 like ,尽量使用等值查询;

10. 为每个表设置一个默认主键,即使它没有任何用处;

11. 为每个表设置一个creation,modification字段,表示记录的创建时间和最后修改时间;

12. 对数据库中的数据作软删除--设计表时增加一个is_deleted字段,当删除时,修改该字段的值,不做物理删除;

13. 字段的长度设计尽量贴近实际;

14. 各个字段尽量设计成非空的,不要设置默认值;

15. 尽量使用标准的 SQL 语句,便于迁移;

16. SQL中所有的数据库字段和关键字大写;

17. SQL 语句要合理缩进,建议使用 sqlplus 之类的工具格式化;

18. 不要用 SELECT * ,而是一个一个的把要查询的字段列举出来--否则后期添加字段是一种灾难!

19. INSERT 后要把所有的字段依次列举,防止后期字段顺序变化或字段增删;

20. 数据库中使用 user_detail 形式的命名规则(包括表名和字段名);

21. 不要把表和字段名设计为 SQL 的关键字。

?