话说,在一个大型项目中,后端工程将会有很多张数据表,这些表通过一些逻辑将数据组合起来,使项目的数据处理与运用更加合理与迅捷。好的数据库设计将会使整个架构清晰,数据模型完整,使用户查询信息更加迅速,用户体验更加友好。可以说,随着用户量的不断提升,数据库的性能是制约系统性能的一个重要的因素,因此,好的数据库设计是每个程序员都应该掌握的,团队内部形成一些规范将有助于开发工作的顺利进行,这其中包括数据库的设计规范以及数据库的操作规范。
今天我们首先来聊聊数据库的设计规范。
(1)数据表的字段设计中,字段尽量使用非空。NULL本身并不会占用存储空间,但是如果存在NULL的话就会多占用一个字节的标志位的空间。
每个字段要有一个非NULL的默认值:
整形,一般使用0作为默认值。
字符串,默认空字符串
时间,可以默认1970-01-01 08:00:01
以InnoDB作为考量条件。
如果不设置NOT NULL的话,NULL是列的默认值,如果不是本身需要的话,尽量就不要使用NULL
使用NULL带来更多的问题,比如索引、索引统计、值计算更加复杂,如果使用索引,就要避免列设置成NULL
如果是索引列,会带来的存储空间的问题,需要额外的特殊处理,还会导致更多的存储空间占用
对于稀疏数据有更好的空间效率,稀疏数据指的是很多值为NULL,只有少数行的列有非NULL值的情况