1. 数据库命名规范
- 采用单词+下划线'_'组成
- 命名简洁明确(长度不能超过30个字符)
- 例如:user,stat,log,也可以wifi_user, wifi_stat,wifi_log 给数据库加个前缀
- 除非是备份数据库可以加0-9的自然数
2. 数据库表名命名规范
- 采用26 个英文字母(区分大小写)和0-9 的自然数(经常不需要)加上下划线'_'组成
- 命名简洁明确,多个单词用下划线'_'分隔。
3. 数据库表字段命名规范
- 单词+下划线组成
- 例: user_login, user_id
- 每个表中必须有自增主键,add_time(默认系统时间)
- 表与表之间的相关联字段名称要求尽可能的相同
4. 数据库表字段类型规范
用尽量少的存储空间来存储一个字段的数据
能用int就不用varchar,char,能用varchar(10)就不用varchar(255)
IP地址最好用INT类型
固定长度的类型最好使用char,例如:邮编
能使用tinyint就不要使用smallint, int
最好每个字段一个默认值,最好不能为Null
5. 数据库表索引规范
命名简洁明确,例如:user_login表,user_name字段的索引应为user_name_index唯一索引
为每个表创建一个主键索引
为每个表创建合理的索引
建立复合索引请慎重
6. 数据库范式
-
第一范式(1NF) :字段值具有原子性,不能再分(所有关系型数据库系统都满足第一范式)
- 例如:姓名字段,其中姓和名是一个整体,如果区分姓和名那就必须设立两个字段
-
第二范式(2NF):一个表必须有主键,即每行数据都能被唯一区分
- 备注:必须先满足第一范式
-
第三范式:一个表中不能包含其他相关表中非关键字段的信息,即表数据中不能用冗余字段
-
备注:必须先满足第二范式
-
一般不需要完全遵循第三范式,因为过度的工程化会导致项目过度细化而影响系统整体性能
-
例如:老师和学生都有账号,密码等,如果把老师账号和学生账号冗余在其信息表内,而学生账号放在学生信息表内,其实没有影响其整体的存储,但这样的效率省了大量的join操作,提升了性能,(就算拆成几张表也无法节省内存,也只会占用更多的硬盘空间,或内存空间)血的教训!!!!
-