后台存储过程开发规范
介绍:
此文档为开发接口文档,包含了云端、任务管理系统、打分系统、攀岩系统四个模块。
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