/*
******************************************************************************
* Program Name: 项目名称
*
* Program ID: 存储过程名
*
* Commentary:公司信息
*
* $Revision: 版本
*
* $Author: 作者
* $Date: 做成日
*
******************************************************************************
*/
CREATE PROCEDURE 存储过程名
(
@TempTableInfo VARCHAR(150)
)
AS
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Default behavior
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
SET CONCAT_NULL_YIELDS_NULL ON -- ON: NULL operation is NULL
SET ARITHABORT ON -- ON: Div 0, overflow is error
SET ANSI_PADDING ON -- ON: not truncate trailing space
SET ANSI_WARNINGS ON -- ON: warn NULL operation, and ARITHABORT ON
SET CURSOR_CLOSE_ON_COMMIT OFF -- ON: When COMMIT or ROLLBACK, cursor is automatically closed.
SET IMPLICIT_TRANSACTIONS OFF -- ON: use implicit transaction
SET XACT_ABORT ON -- ON: If error is occured, transaction is automatically rollbacked.
SET NOCOUNT ON -- ON: not display record count
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Declaration of System Variables
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- for System Informations
DECLARE @rowcount INT -- @@ROWCOUNT
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Declaration of Users Variables
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
DECLARE @TableName VARCHAR(150)
DECLARE @strVARCHAR(8000)
DECLARE @str2VARCHAR(8000)
DECLARE @Result INT
DECLARE @MasterDB VARCHAR(100)
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Main Process
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
往下是存储过程的具体内容。
数据库的开发对于后台编程程序员来说是必备能力之一了,而今天我们就一起来了解一下,关于数据库开发的设计规范都有哪些类型,山西北大青鸟http://www.kmbdqn.cn/希望通过对本文的阅读,大家对于数据库开发有更多的了解。
一、数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)数据库对象的命名要能做到见名识意,并且后不要超过32个字符临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)二、数据库基本设计规范1、所有表必须使用Innodb存储引擎没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5.5之前默认使用Myisam,5.6以后默认的为Innodb)Innodb支持事务,支持行级锁,更好的恢复性,高并发下性能更好2、数据库和表的字符集统一使用UTF8兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效3、所有表和字段都需要添加注释使用comment从句添加表和列的备注从一开始就进行数据字典的维护4、尽量控制单表数据量的大小,建议控制在500万以内500万并不是MySQL数据库的限制,过大会造成修改表结构,备份,恢复都会有很大的问题可以用历史数据归档(应用于日志数据),分库分表(应用于业务数据)等手段来控制数据量大小5、谨慎使用MySQL分区表分区表在物理上表现为多个文件,在逻辑上表现为一个表谨慎选择分区键,跨分区查询效率可能更低建议采用物理分表的方式管理大数据6、尽量做到冷热数据分离,减小表的宽度MySQL限制每个表多存储4096列,并且每一行数据的大小不能超过65535字节减少磁盘IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大,也会消耗更多的IO)更有效的利用缓存,避免读入无用的冷数据经常一起使用的列放到一个表中(避免更多的关联 *** 作)
这个主要看答辩老师的要求,不过仅仅是这些错误老师一般会给过的。数据库表字段规范:
1.表中的第一个id字段一定是主键且为自动增长,一般为1,请使用UNSIGNED属性,主键与业务无关。
2.外键名字修改成’关联对象——id’(例如:study表patient_id),数据库不设外键约束。
3.所有字段都增加非空约束,防止业务逻辑报npe异常。
4.使用utf8mb4字符集,防止表情出现乱码。
5.所有字段增加注释。(除非显而易见)
6.每张表包含mtime,ctime字段,仍使用unsigned int。
7.时间字段使用时间戳(秒数)储存,设置默认值。
8.使用tinyint代替enum,默认值default=0,在业务中处理enum字段。
9.varchar类型设置长度为2的倍数,(32,64,128等)
10.增加null处理,比如特殊字段null,0,处理。
11.与sql关键字,系统函数区别处理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)