数据库的三泛式
1 对属性的原子型约束,要求不可再分解,第二:对记录的唯一性约束,要求记录有唯一的标识,及实体的唯一性,
第三:对字段冗余的约束,及任何的字段不能由其他字段派生而来,要求字段没有冗余!
评价:冗余不一定有坏处,有的时候为了提高效率,必须降低泛是的标准:增加字段,运行冗余!
主键的取值问题:尽量选用无意义的字符串,采用自增+1,也可以物理一样的字段名或者字段的组合,
但是前者要远远的好于后者!当pk时字段名的组合的时候,组合的字段不宜太多,原因:多了索引占用的空间大,而且速度也慢;
1 整数代替字符串
2 不要使用枚举和集合,引用不易维护
3 尽可能使用固定长度的存储空间,小数浮点数和定点数
4 尽量不要使用null,因为存储和索引还有其他的情况需要特殊的处理
5 尽量要有默认的值
6 尽量要有注释
7 表的字段的数量不宜过长
8 尽可能使用存储空间少的数据类型
9 可以增加几个预备的字段
10 编码尽量的统一utf8
11 适当的增加冗余字段,提高查询和统计的效率,典型的以空间换时间!
12 注意自增的数据类型,无符号问题!有的时候不允许负数
13 表名有意义,带上前缀,表名英文的单数
14 createTime和UpdateTime尽量的必备,没有默认值要为null!