对象命名应该遵循的规则
1.可读性原则
使用大写和小写来格式化的库对象名字以获得良好的可读性(注意有些DBMS系统对表名大小写敏感)
2.表意性原则
对象的名字应该能描述它所标识的对象
3.长名原则
尽可能少使用或者不使用缩写,适用于数据库database名之外的任一对象
字段类型的选择原则
列的数据类型: 会影响数据存储空间的开销,影响数据库的查询功能
(优先:数字类型-->日期或二进制类型-->字符类型 相同级别则选择占用空间小的数据类型)
以上原则主要是从两个方面考虑:
1.对数据进行比较(查询条件、join条件及排序)操作时:同样的数据,字符处理往往比数字慢
2.在数据库中,数据处理以页为单位,列的长度越小,利于性能提升
相同级别的数据类型如何选择:
char与varchar如何选择
1.如果列中要存储的数据长度差不多是一致的(像身份证、学号等),则先char,否则varchar
2.如果列中的最大数据长度小于50byte,则char
(如果这个列很少用,则基于空间和减少I/O考虑,还是可以选择用varchar)
3.一般不宜定义大于50byte的char类型列
decimal和float如何选择
1.decimal用于存储精确数据,float用于存储非精确数据
2.float存储空间开销较小
时间类型如何存储
1.用int类型来存储的优缺点(适用于只用来存储很少查询的数据,eg:生日日期,否则适合用日期类型存储)
优点:字段长度比decimal小
缺点:使用不方便,要进行函数转换
限制:只能存储到2038-1-19 11:14:07即2^32为2147483648
2.需要存储的时间粒度
年 月 日 小时 分 秒 周
如何选择主键(最好的顺序增长的,这样就不会出现逻辑数据的迁移,对I/O性能带来好处)
避免使用外键约束:
1.降低数据导入的效率
2.增加维护成本
3.但是相关联的列上一定要建立索引
避免使用触发器:
1.降低数据导入的效率
2.可能会出现意想不到的数据异常
3.使业务逻辑变得复杂
关于预留字段:意义不大,严禁使用预留字段