隐士草拟的一份数据库编码规范,如欲转载,请注明来源http://blog.csdn.net/nethermit/,欢迎大家和我讨论,隐士思考还不成熟,欢迎拍砖。贴过来,格式有些被破坏了,各位海涵。
- 数据库命名规范
●数据库名称一般以项目名、网站子域名为准
●数据库名称由英文字母和数字组成,如无必要不要引入数字。
●英文字母必须由完整的英文单词组成,允许使用常见的所写。
●单词间以下划线分隔,全部字母小写,如:my_mdbchina,video_mdbchina,www_mdbchina。 - 数据表命名规范
●数据表必须根据该表功能来命名。
●单词间以下划线分隔,全部字母小写。
●含有多条数据的必须以英文名词复数结尾,如不知如何用英文起名,请参考英语词典、IMDB以及咨询系统架构师。
●不得起意义含糊不清的表名,表明长度不可过短以至意义模糊,稍长一点不会影响开发效率。 - 字段命名规范
●字段名必须根据该字段功能来命名,采用驼峰命名法,首字母小写,一般以名词单数结尾。
●其他同表名命名规范。 - 所有表必须有以下字段
creationDate (Date)和lastModifiedDate (Date),在插入记录时creationDate和lastModifiedDate均为当前数据库时间,在更新任何字段时均同时更新lastModifiedDate为当前数据库时间,不建议用触发器来实现这一功能,今后开发此功能应该在每条更新语句中添加同步更新lastModifiedDate的功能。 - SQL语句书写规范
●SQL语句中所有关键词必须全部大写,能够参数化的必须用参数化方式写。
● 所有自定义变量采用首字母小写的驼峰命名法,所有自定义函数、存储过程采用首字母大写的驼峰命名法。
● 对于过长的SQL语句必须分行写,原则上不得出编辑器窗口。 - 全局设计
●尽力避免写触发器、存储过程:将相应功能做成数据访问层提供统一接口给业务逻辑层使用。未来将禁止任何触发器、存储过程,因为触发器、存储过程或多或少消耗了数据库的资源,且跨数据库支持极差,数据库达到设计极限后无法横向扩展,将上述移至Web Servers的数据访问层后,消耗的是Web Servers的资源,使数据库仅仅做执行SQL语句的事情,而不是参与运算业务逻辑,鉴于Web Servers可以简单横向扩展,未来开发必须要避免写触发器、存储过程,直至有一天取消所有的此类应用。今后全新项目的开发中如必须要写触发器、存储过程,必须征得系统架构师的同意,如果擅自写的话,需要承担相应的加班修改的风险。
●数据表要合理设计:对于新项目,所有数据表设计必须征得系统架构师的同意,对于现有项目,可与系统架构师探讨。