软件编程命名方法+数据库命名

来源:互联网 发布:js获取li标签的属性值 编辑:程序博客网 时间:2024/06/06 02:28
最终:
包的命名  
Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个 Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序 员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。 
例如: net.frontfree.javagroup 

类的命名+等同于数据库表的命名
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名 称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量 选择名词。    
例如: Circle ; User;; BookInfomation
类、接口命名

命名规范:以大写字母开头,如果有多个单词,每个单词头字母大写
例如:StudentInfo
接口命名

命名规范:以大写字母"I"开头,如果有多个单词,每个单词头字母大写
例如:IStudentInfo

接口实现类命名:
命名规范:将实现的接口名称的首字母"I"去掉,以"Impl作为结尾",如果有多个单词,每个单词头字母大写。
例如:StudentInfoImpl

方法的命名 
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。 
例如: sendMessge 

变量的命名 
+等同于数据库字段命名(但是微软数据库字段命名是首字母大写如:CustomId)
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。 
变量名首字母必须小写,如果该变量名有多个单词组成,后面的单 词首字母大写,单词与单词之间不要使用"_"做连接,变量名访问控制必须为私有,
变量:userName userAge
常量的命名 
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。 
例如: MAX_VALUE 
最好的:http://wenku.baidu.com/view/7e9e7e7401f69e314332949a.html
自己总结:
一、数据库:AdvertureWorks(好)或AdventureWorksDb
二、库文件:AdventureWorks_Data.mdf ;AdventureWorks_Log.ldf
三·关系型数据仓库:AdventureWorksDW
四、 数据表 采用Pascal样式命名,命名格式为[表名]。  示例:Employee        Product   第一个字母大写表名以英文单数命名,主要是参考SQL Server 2005示例数据库,个人理解不采用复数是为了更好的使用ORM工具生成符合编程规范的代码(比如C#)。  示例:使用Product    而不是Products 2.1.6 数据视图 视图名称采用Pascal样式命名,命名格式为v + [视图名称]。  示例:vEmployee        vSalesPerson 2.1.7 数据列 列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。采用Pascal样式命名,命名格式为[列名称]。  示例:AddressID        PostalCode   尽量避免使用拼音命名,如果不可避免,对于比较短的列名,采用拼音全写,如果拼音列名比较复杂,可以采用首个字用全拼,其它字用首字母大写表示。  示例:福州 Fuzhou  
下面为详细
1 概述 1.1 基本原则 以大小写敏感编写SQL语句。  尽量使用Unicode 数据类型。  优先使用连接代替子查询或嵌套查询。  尽量使用参数化SQL查询代替语句拼接SQL查询。  禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。  尽量使用存储过程代替SQL语句。  1.2 基本规范 建议采用Pascal样式或Camel样式命名数据库对象。  大写T-SQL语言的所有关键字,谓词和系统函数。  2 命名规范 在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码不需要调整就符合程序开发语言(比如C#)命名规范。另外,关系型数据库同Xml结合得越来越紧密,规范的命名越来越重要。  在实际数据库开发过程中,如果需求方已经提供数据库设计方案,建议以提供的方案为准;在原有数据库上进行升级开发时,在可行的情况下可适当做出设计调整以符合编程规范。     2.1 对象命名 2.1.1 数据库 第一种方式,采用Pascal样式命名,命名格式为[项目英文名称]。  示例:AdventureWorks  第二种方式,采用Pascal样式命名,命名格式为[项目英文名称] + Db。  示例:AdventureWorksDb    BizTalkRuleEngineDb  建议采用第一种方式。   2.1.2 数据库文件 数据文件:[数据库名称] + _Data.mdf  日志文件:[数据库名称] + _Log.ldf  示例:AdventureWorks_Data.mdf        AdventureWorks_Log.ldf  2.1.3 关系型数据仓库 采用Pascal样式命名,命名格式为[项目英文名称] + DW。  示例:AdventureWorksDW 2.1.4 数据架构 除SQL Server 系统定义的数据架构外,新建架构采用Pascal样式命名,命名格式为[架构名]。  示例:HumanResources        Production     对数据库对象 Table,View,Procedure,Function等使用数据架构进行归类。在SQL Server 2000中dbo为默认架构。 2.1.5 数据表 采用Pascal样式命名,命名格式为[表名]。  示例:Employee        Product   表名以英文单数命名,主要是参考SQL Server 2005示例数据库,个人理解不采用复数是为了更好的使用ORM工具生成符合编程规范的代码(比如C#)。  示例:使用Product    而不是Products 2.1.6 数据视图 视图名称采用Pascal样式命名,命名格式为v + [视图名称]。  示例:vEmployee        vSalesPerson 2.1.7 数据列 列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。采用Pascal样式命名,命名格式为[列名称]。  示例:AddressID        PostalCode   尽量避免使用拼音命名,如果不可避免,对于比较短的列名,采用拼音全写,如果拼音列名比较复杂,可以采用首个字用全拼,其它字用首字母大写表示。  示例:福州 Fuzhou    经营方式 JingYFS 2.1.8 存储过程 建议采用匈牙利样式命名,命名格式为[存储过程名称]。  示例:uspGetUser       uspAddUser   备注:在SQL Server 2005示例数据库中使用Camel样式命名。  2.1.9 函数 自定义函数采用匈牙利样式命名,命名格式为[函数名]。  示例:  ufnGetDate()   2.1.10 用户定义数据类型 采用Pascal样式命名,命名格式为[自定义数据类型名称]。  示例:Flag        NameStyle  2.1.11 DML触发器 DML触发器是当数据库服务器中发生数据操作语言 (DML) 事件时要执行的操作。DML 事件包括对表或视图发出的 UPDATE、INSERT 或 DELETE 语句。根据事件不同命名规则使用前缀进行区分,格式为 [u|i|d] + [表名|视图名]  示例:uEmployee         iEmployee        dEmployee 另外一种方式为,  AFTER 触发器:TR_表名_[后面插入加I,修改加U,删除加D]。  INSTEAD OF 触发器:TR_表名或视图名_OF[后面插入加I,修改加U,删除加D]  2.1.12 DDL触发器 响应各种数据定义语言 (DDL) 事件而激发。这些事件主要与以关键字 CREATE、ALTER 和 DROP 开头的 Transact-SQL 语句对应。执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。  采用Camel样式命名,命名单词能够描述DDL触发器功能。  示例:  CREATE TRIGGER safety   ON DATABASE   FOR DROP_TABLE, ALTER_TABLE   AS      PRINT 'You must disable Trigger "safety" to drop or alter tables!'      ROLLBACK    另外一种方式为添加ddl前缀,  示例:  CREATE TRIGGER [ddlDatabaseTriggerLog]   ON DATABASE   FOR DDL_DATABASE_LEVEL_EVENTS   AS  最好的数据库命名

关系型数据仓库

关系型数据仓库

转一个J2EE开发时的包命名规则,养成良好的开发习惯

代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯。
代码编写规范使用范围:J2EE项目开发。
包命名规范:
目的:包的命名规范应当体现出项目资源良好的划分

servlet类所在包命名规范:公司名称.开发组名称.项目名称.web.servlet
例如:net.linkcn.web.servlet

自定义标签类所在包命名规范:公司名称.开发组名称.项目名称.web.tags
例如:net.linkcn.web.tags

过滤器类所在包命名规范:公司名称.开发组名称.项目名称.web.filter
例如:net.linkcn.web.filter

Action类所在包命名规范:公司名称.开发组名称.项目名称.web.struts.action
例如:net.linkcn.web.struts.action

ActionForm类所在包命名规范:公司名称.开发组名称.项目名称.web.struts.form
例如:net.linkcn.web.struts.form

Javabean所在包命名规范:公司名称.开发组名称.项目名称.web.struts.service.impl
例如:net.linkcn.web.service.impl

Javabean实现接口命名规范:公司名称.开发组名称.项目名称.web.service
例如:net.linkcn.web.service

DAO类所在包命名规范:公司名称.开发组名称.项目名称.dao.impl
例如:net.linkcn.dao.impl

DAO类所实现的接口在包中命名规范:公司名称.开发组名称.项目名称.dao
例如:net.linkcn.dao

POJO类与hbm文件所在包命名规范:公司名称.开发组名称.项目名称.dao.hbm
例如:net.linkcn.dao.hbm

全局公共类、接口类所在包命名规范:公司名称.开发组名称.项目名称.global
例如:net.linkcn.global

全局工具类所在包命名规范:公司名称.开发组名称.项目名称.util
例如:net.linkcn.util

类命名规范
基本命名规范:

类、接口命名

命名规范:以大写字母开头,如果有多个单词,每个单词头字母大写
例如:StudentInfo
接口命名

命名规范:以大写字母"I"开头,如果有多个单词,每个单词头字母大写
例如:IStudentInfo

接口实现类命名:
命名规范:将实现的接口名称的首字母"I"去掉,以"Impl作为结尾",如果有多个单词,每个单词头字母大写。
例如:StudentInfoImpl

J2EE+SSH框架命名规范
servlet类命名:
命名规范:以Servlet单词结尾
例如:LoginServlet

POJO命名:
使用hibernate自动生成的类即可

DAO类命名:
使用hibernate自动生成的类即可

Action类命名:
命名规范:Action的命名以POJO名称来制定,POJO名称Action
例如:
一个POJO名称为Diary,其对应的action为DiaryAction

ActionForm类命名:
命名规范:ActionForm的命名以POJO名称来制定,POJO名称Form
例如:
一个POJO名称为Diary,其对应的actioForm为DiaryForm

业务逻辑接口命名:
命名规范:业务逻辑接口的命名以POJO名称来制定,IPOJO名称Service
例如:
一个POJO名称为Diary,其对应的业务逻辑接口为IDiaryService

业务逻辑实现类命名:
命名规范:业务逻辑接口实现类的命名以POJO名称来制定
例如:
一个POJO名称为Diary,对应的业务逻辑接口实现类名为DiaryServiceImpl

类变量命名:
命名规范:变量名首字母必须小写,如果该变量名有多个单词组成,后面的单 词首字母大写,单词与单词之间不要使用"_"做连接,变量名访问控制必须为私有, 可以对其增加setter与getter方法。
例如:
private int studentAge;
public int getStudentAge(){
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge=studentAge;
}

常量命名:
命名规范:所有字母大写,如果有多个单词组成,单词与单词之间以” _“隔开。而 且该变量必须是公共、静态、final类型
例如:public static final String USER_NAME=”userName“;

方法命名
命名规范:首字母必须小写,如果该变量名有多个单词组成,后面的单词首字母 大写,单词与单词之间不要使用"_"做连接。单词不要使用名词。
例如:public int checkLogin(String name,String pwd){}

注释规范:注释规范是整个开发规范中最为重要的组成部分,必须严格执行。

类的注释:
作用:注释整个类,简单概述该类作用。
书写规范:类的注释必须写在该类的声明语法之前。在注释中要描述该类的基 本作用,作者,日期,版本,公司名称,版权声明。
格式:

类的声明语法

例如:

public class AdminDAO

变量、常量注释:
作用:简单描述该变量的意义。
书写规范:变量注释必须写在变量定义之前,简单描述其代表的意义。
格式:


例如:


public int age;
方法注释:
作用:对该方法功能简单描述,其参数、返回值意义的注解。
书写规范:方法注释必须写在方法定义之前。该注释包括:方法其功能的简单 描述,方法的参数、返回值类型、返回值意义简单的描述。
格式:


例如:

public booleaneditAdminPassword(int adminId,String oldPassword,
String password) throws UserException,ServiceException;

Jsp页面命名:
命名规范:jsp页面名称要以小写字母开头,如果有多个单词组成,后面的单词以 大写字母开头。名称要体现出该页面的意义,最好能够与模块名称联系在一起。
例如:
login.jsp --登录页面
register.jsp --注册页面
message.jsp --客户留言页面

J2EE项目工程文件夹组织规范:
目的:规范学员web应用程序的资源组织形式,形成良好的文件组织习惯。文件的组织形式应当体现模块的划分。

根据eclipse工具的特征,项目的目录结构为:
src
----存放java文件 
WebRoot
|--images --存放web程序所需的公共图片
|--css --存放web程序所需的公共样式表
|--js --存放web程序所需的公共js文件
|--commons --存放web程序所需的公共文件
|--功能模块文件夹(存放与某个功能模块相关的资源)
|--images --存放与该功能模块相关的图片
|--css --存放与该模块相关的样式表文件
|--js --存放与该模块相关的js文件
|--jsp、html页面
|--WEB-INF
|--classes
|--lib
|--tld文件

J2EE项目提交规范
项目完成时要将项目作为一个产品交付用户,良好的项目组织规范可以使用户可以方便的找寻项目中需要的资源,同时也是一个公司专业性的体现。项目提交时,要按照下列文件格式进行提交。

项目主文件夹:
作用:存放项目其他资源文件。
命名规范:时间_班级编号_第X小组。
例如:070706_GS2T18_第四小组。
项目主文件夹下面包括以下文件夹和文件:
|--src:保存.java文件。
|--database:保存数据库的脚本文件或者数据库备份文件。
|--source:保存eclipse工程中WebRoot目录下的所有文件。
|--depend:保存编译该程序必须依赖的其他jar文件。
|--javadoc:保存所有类生成的javadoc api文档。
|--war:保存程序的归档文件
|--xx.war:已经打包好的工程文件,可以直接运行。
|--project:保存开发项目原工程代码及文件。
|--产品说明书.doc:图文方式展现该产品使用方法。
|--build.xml:ant脚本,用于生成运行的war文件。
|--项目解说.ppt:进行项目讲解的ppt(ppt仅供在校模拟项目使用,不用于其他商业用途)
注:一个完整的项目中,数据库必须有一定量的有效的测试数据来支持该程序的运行

包的命名  
Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个 Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序 员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。 
例如: net.frontfree.javagroup 

类的命名 
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名 称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量 选择名词。    
例如: Circle 

方法的命名 
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。 
例如: sendMessge 

常量的命名 
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。 
例如: MAX_VALUE 

参数的命名 
参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。 

Javadoc注释 
Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代 码中的API的。Javadoc注释是一种多行注释,以结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc 注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 
例如: 

在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟 随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这 些段落将在生成文档中以特定方式显示。

变量和常量命名
变量命名的方法采用匈牙利命名法,基本结构为scope_typeVariableName,它使用3字符前缀来表示数据类型,3个字符的前缀必须 小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。例如, 定义一个整形变量,用来记录文档数量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。这样,在一个变量名就 可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。byte、int、char、long、float、 double、boolean和short。 
变量类型和首字母对照关系如下表:
数据类型/对象类型 / 变量前缀 / 备注 
byte bye 
char chr 
float flt 
boolean bln 做布尔变量时,使用bln 
Integer/int int 
String str 
Single sng 
short sht 
Long/long lng 
Double/double dbl 
Currency cur 
Variant bln astr obj vnt 做布尔变量用时,用bln,做字符串数组用时,用astr,做为对象使用时,用obj,不确定时,用vnt。
对于数组,在数据类型的前缀前再增加一个a,例如字符串数组为astr。对于在多个函数内都要使用的全局变量,在前面再增加“g_”。例如一个全局的字符串变量:g_strUserInfo。

在变量命名时要注意以下几点:
· 选择有意义的名字,注意每个单词首字母要大写。

· 在一段函数中不使用同一个变量表示前后意义不同的两个数值。

· i、j、k等只作为小型循环的循环索引变量。 

· 避免用Flag来命名状态变量。 

· 用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚
的理解布尔变量所代表的意义。 

· 如果需要的话,在变量最后附加计算限定词,如:curSalesSum。 

· 命名不相包含,curSales和curSalesSum。

· Static Final 变量的名字应该都大写,并且指出完整含义。 

· 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。 

· 通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上 一个)、Cur(一组变量中的当前变量)。

· 为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。

· 尽量缩小变量的作用域。如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。它们的主要问题是,任何类 中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的 可靠性产生巨大的影响。 
关于常量的命名方法,在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0,1以外,尽量不应该出现其他数 字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下 划线“_”来分割这些单词如:NUM_DAYS_IN_WEEK、MAX_VALUE。

 数据库命名规范  1. 实体(表)的命名 1) 表以名词或名词短语命名,定义规则: <分类>_<表达业务的名词或名词短语> 表名以<分类_>开头后面是业务名词或短语表达,不要缩写,多个单词间不加“_”,每个单词的首字母大写其他字母小写。 例如:系统管理中有用户表、角色表、单位结构表等。则命名规则为:       用户表(System_UserInfo) 角色表(System_Role) 表:单位结构表  (System_DepartmentStructure) (分类____单词组合,首字母都大写)(很好)  2) 关联类通过用下划线连接两个基本类之后,再加后缀_lk的方式命名。   关联表用于保存多对多关系。 例如:表 Depart和Employee;存在多对多的关系。则命名规则为:       System _Depart_Employee_lk。  2. 属性(列)的命名 1) 列名的命名规则同表名的命名规则,大小写规则也是单词的首字母大写其他的小写。 2)尽量避免使用关键字作为列名,以免一些不必要的错误发生。 3)每张表必须至少有一个主键列。  3. 视图的命名   1) 视图以“V_”作为前缀,其他命名规则和表的命名类似;   2) 命名应尽量体现各视图的功能。 文档冲亿季,好礼乐相随mini ipad移动硬盘拍立得百度书包  4. 触发器的命名(数据库中禁止使用触发器)   触发器以“TR_”作为前缀,触发器名为相应的表名加上后缀,Insert触发器加"_I",Delete触发器加"_D",Update触发器加"_U",如: TR_Customer_I,TR_Customer_D,TR_Customer_U。  5. 存储过程名   存储过程应以"UP_"开头,和系统的存储过程区分,后续业务功能部分。如增加代理商的帐户的存储过程为"UP_InsertAgentAccount"。  6. 变量名 变量名同表名列名等类似每个单词首字母大写,如@MyErrorNo。   7. 命名中其他注意事项   1)  以上命名都不得超过30个字符的系统限制。变量名的长度限制为29(不包括标识字符@)。   2)  数据对象、变量的命名都采用英文字符,禁止使用中文命名。绝对不要在对象名的字符之间留空格。   3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突 4) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。 5)所有的表、字段、存储过程等必须有注释,注释的语言是系统而定1.数据库涉及字符规范 采用26个英文字母和0-9这十个自然数,加上下划线_组成,共36个字符。不出现其他字符。鉴于大小写规则难记忆,而且有些情况下,数据库不区分大小写,统一采用小写字母。 采用英文单词或英文短语(包括缩写)作为名称,不使用无意义的字符或汉语拼音。 名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。 2.数据库对象命名规范 数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,绝对不要在对象名的字符之间留空格,长度不超过30。 使用单数(比如表名tb_member,不要使用tb_members)。 前缀:使用小写字母 表       tb_<表的内容分类>_<表的内容>     视图      vi 存储过程     sp 函数      fn 索引       idx_<表名>_<索引标识> 主键       pk_<表名>_<主键标识> 外键           fk_<表名>_<主表名>_<外键标识> 序列        seq 实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词以‘_’间隔,字母小写,不以数字开头。合法的对象名字类似如下。 表        tb_user_info   tb_message_detail 视图       vi_message_list 存储过程     sp_message_add 3.数据库表设计规范 表名由前缀和实际名字组成。tb_<表的内容分类>_<表的内容>。 表的设计要符合3NF,然后,可以根据效率的需要,适当做一些冗余。 前缀:使用小写字母tb,代表表。实际名字中,一个系统尽量采取同一单词,多个后面加_来连接区分。  合法的表名类似如下。 tb_member tb_member_info tb_forum_board tb_blog_comment1  一些作为多对多连接的表,可以使用两个表的前缀作为表名: 如:用户表tb_user,用户分组表tb_group_info,这两个表建立多对多关系的表名为:tb_user_group_relation  4.字段命名规范 字段由表的简称,实际名字组组成。如果此字段关联另外的字段,那么加下划线_连接关联表字段的字段名。布尔型的字段,以一些助动词开头,更加直接生动:如,用户是否有留言has_message,用户是否通过检查is_checked等。字段名为英文短语、形容词+名词或助动词+动词时态的形式表示,遵循“见名知意”的原则。 因此,合法的字段名类似如下。 user_id user_name user_reg_date            5.视图命名规范 由前缀和实际名字组成,中间用下划线连接。前缀:使用小写字母vi,表示视图。合法的视图名类似如下。 vi_user vi_user_info 6.存储过程命名规范 字段由前缀和实际名字加操作名字组成,中间用下划线连接。 前缀:使用小写字母sp,表示存储过程。 操作名字:insert|delelte|update|caculate|confirm 例如:sp_user_insert(前缀+表名+操作名字) /*---------------------------------------------------------------- // // 描述:****** // 创建人:*** // 创建日期: 2011.1.7 // 修改标识: // 修改描述: //-----------------------------------------------------*/ 7.数据库设计文档规范 所有数据库设计要写成文档,附有表关系图,可采用PowerDesigner设计; 表的具体描述文档以模块化形式表达。大致格式如下: 表名:tb_members 日期: 2008-12-17 版本: 1.0 描述:保存用户资料 主键:mem_id 索引:idx_mem_name, unique(唯一索引) 外键:mem_id(对应tb_member_info.meminfo_id) 具体内容样例 字段名 数据类型 可为空 默认值 备注 meminfo_id int(4) 否 无 主键,自增长(如果是ORACLE要指定序列对象名) name varchar(50) 否 无 表示该会员名,会员名不重复 mem_id int(4) 是 0 外键  address varchar(100) 是 无 表示所在地址 phone varchar(50) 是 空串 表示联系电话 QQ varchar(50) 否 无 表示会员QQ 8.sql语句规范 所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,GROUP BY等。 9.数据完整性规范 1、为便于在程序的编码期查错,可以在设计数据库的时候尽可能多的加上约束(check)。如,整型的字段的取值范围等,常常为field>0。 总结:
表tb_user ;
tb_member;
tb_member_logininfo ;或tb_memberLogininfo(好)
tb_forum_board;
tb_blog_comment1 
表:单位结构表  (System_DepartmentStructure) (分类____单词组合,首字母都大写)(很好)

视图:    vi_user,   vi_user_info 或vi_userInfo(好)
字段:user_id,user_name ,  name,  age,    addr,   is_checked或userName isChecked(好)
几种常见的程序设计中命名规则   正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。 一、匈牙利命名法:广泛应用于Microsoft Windows这类环境中。   这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变 量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。   匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。   例如:bEnable, nLength, hWnd。   匈牙利命名法中常用的小写字母的前缀: 前缀 类型 描述 a Array 数组 b BOOL 布尔 by BYTE 无符号字符 c char 字符 cb Count of bytes 字节数 cr Color reference value 颜色值 cx,cy Count of x,y(short) 长度 dw DWORD 双字(无符号长整形) f Flags 标志 fn Function 函数 g_ Global 全局的 h HANDLE 句柄 i Integer(int) 整数 l Long(long) 长整数 lp Long point 长指针 m_ Data member of a class 类的数据成员 n Short(short) 短整型 np Near point 短指针 p Point 指针 s String 字符串 sz Zero terminated string 以0结尾的字符串 tm Text metric 文本规则 u Unsigned int 无符号整数 ul Unsigned long(ULONG) 无符号长整数 w WORD 无符号短整数 x,y x,y coordinates(short) 坐标 v Void 空   有关项目的全局变量用g_开始,类成员变量用m_。 前缀 类型 例子 C 类 CDocument, CPrintInfo m_ 成员变量 m_pDoc, m_nCustomers g_ 全局变量 g_Servers  二、驼峰命名法:近年来越来越流行。   驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。 例如:   printEmployeePaychecks(); 函数名中每一个逻辑断点都有一个大写字母来标记。  三、帕斯卡(Pascal)命名法:与驼峰命名法类似。 只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。 例如:   DisplayInfo();   UserName 都是采用了帕斯卡命名法。   在C#中,以帕斯卡命名法和骆驼命名法居多。   事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。  四、下划线命名法。 下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。 4.1 函数的命名   函数名使用下划线分割小写字母的方式命名:     设备名_操作名();    操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如: 函数:    tic_init();     adc_is_busy();     uart_tx_char();  4.1函数:断函数的命名直接使用 设备名_isr() 的形式命名,如:     timer2_isr();  4.2 变量的命名   变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:     int length;     uint32 test_offset;    单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。   局部静态变量,应加s_词冠(表示static),如:     static int s_lastw;    全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:     void (* g_capture_hook)(void);  4.3 常量及宏的命名   采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,   防止模块间命名的重复。如:     #define TIMER0_MODE_RELOAD                2     #define TIMER2_COUNT_RETRIEVE(val)        ((uint16)(65536 - (val)))    当然,看作接口的宏可以按照函数的命名方法命名,例如:     #define timer2_clear()                      (TF2 = 0)     #define timer0_is_expired()                (TF0)    据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。
0 0
原创粉丝点击