有思俱乐部学习园地

后台存储过程开发规范


介绍:

  此文档为开发接口文档,包含了云端、任务管理系统、打分系统、攀岩系统四个模块。

SqlServer及MySql存储过程命名规范:

    原则:名字要能准确的描述出该变量所代表的事物,变量名长度最好控制在10~16个字符之间
    名词解释:大驼峰命名法:每一个单词的首字母都采用大写字母
    1、数据库命名规范
     数据库名命名采用项目名(大驼峰)+"_"+模块名称(大驼峰)的形式命名。
     例:  有思俱乐部_用户模块表达为:
           UseStudio_User
           有思俱乐部_网盘表达为:
           UseStudio_Disk
    2、表格命名规范
     表名采用表的作用命名,使用大驼峰表示规则
     例:用户注册信息表表达为:
         UserRegister
    3、字段命名规则
      字段采用大驼峰表示方法。
      例:文章标题表达为:
         ArticleTitle 
    4、存储过程采用大驼峰命名法.
       例:GetFirstName,每一个单词的首字母都采用大写字母.
    5、局部变量符号"@"+"_"+全小写命名方法
       例:表达ip地址,使用如下命名方法:
       @_ip
    6、参数采用符号"@"+全小写命名方法.例如:
       	@userid uniqueidentifier,
        @username varchar(50),//尽量使用nvarchar类型而不用varchar类型
        @ip nvarchar(50),
        @address nvarchar(50),
        @userstamp nvarchar(50),
        @systemid int
    SqlServer存储过程示例:

        -- =============================================
        -- Author:			徐嘉伟
        -- ALTER date: 
        -- Description:	  添加文件架
        --创建文件夹
        --参数一:用户id
        --参数二:目录id
        --参数三:目录深度
        --参数四:目录名称
        --参数五:父亲id
        --参数六:描述
        --参数七:群id。如果为空"",表示不是群文件,否则,是群文件
        --参数八:文件夹密码:如果为空"",则表示不设置密码,否则,设置密码。
        --CreateDirectory(string userid, string directoryid,string deep,string directoryname, string parentid,string description,string groupid,string password);
        ALTER PROCEDURE [dbo].[CreateDirectory] 
	        @userid uniqueidentifier,
	        @directoryid uniqueidentifier,
	        @deep decimal(18, 0),
	        @directoryname nvarchar(100),
	        @parentid uniqueidentifier,
	        @description nvarchar(100),
	        @groupid uniqueidentifier,
	        @encrypt nvarchar(50)
        AS
        BEGIN
             --临时变量,获取创建的文件夹有没有相同文件夹
	         DECLARE @DirectoryInfo table(
		        UserDirectoryID uniqueidentifier
	         );
             insert into @DirectoryInfo exec IfFileOrDirectoryExistsByParentId @userid,@parentid,@directoryname,'folder';
             --创建的文件夹没有相同名字的,则允许插入一个新的,同时返回插入的信息
	         if((select COUNT(UserDirectoryID) from @DirectoryInfo) = 0)
	         begin
		        insert into UserDirectory(UserDirectoryID,UserDirectoryDeep,UserDirectoryAddTime,
                        UserDirectoryName,UserDirectoryParentID,UserDirectoryDescript,UserDirectoryExtendType,UserID,GroupID,UserDirectoryEncrypt)
	            output inserted.* 
		        values(@directoryid,@deep,GETDATE(),@directoryname,@parentid,@description,'folder',@userid,@groupid,@encrypt);
	         end
        END

工作人员

 
                
作者:蔡旭升
信息录入:蔡旭升