第一家公司数据库开发规范

第一章:SQL Server编程规范

一:大小写风格

全部使用小写,包括关键词,不要出现任何大写字母.

二:缩进风格

1:程序块采用缩进风格书写,保证代码清晰易读,风格一致。缩进格数统一为 4 格。
2:必须使用空格键,不允许使用TAB键。
3:注释必须保证左对齐。
4:每行不要超过80个字符,以免在某些编辑器中发生意外换行的情况.
5:同一条语句占用多于一行时,每行的第一个关键字应当右对齐。(建议)


三:空格及换行

1:不允许把多个短语句写在一行中,即一行只写一条语句。
2:相对独立的程序块之间、变量说明之后必须加空行。
3:双目运算符前后、操作符之后、间隔符、左括号之后以及右括号之前应以空格分隔。
4:对两个以上变量赋值时,分多行写,每一行对一个变量赋值,这样便于注释。
5:定义两个以上变量时,分多行写,定义每一行对一个变量,便于注释。
6:IF 语句后面的条件必须使用括号括起来。if语句中用begin...end结构,阅读起来方便些。


四:其它

1:减少控制语句的检查次数,如在ELSE (IF...ELSE)控制语句中,对最常用符合的条件,尽量往前被检查到
2:从表中同一笔中记录获取的字段值,须使用同一SQL语句中得到,不建议分多条SQL语句获得值.
3:表名别名要简短,但意义要尽量明确。通常,使用小写的字母作为别名,使用 as 关键字指定表或字段的别名。
4:当一个 T-SQL 语句中涉及到多个表时,始终使用表名别名来限定字段名。这使其他人阅读起来更清楚,避免了含义模糊的引用。


五:命名规范

1:所有标示符、对象名的长度不得超过30个字符。(这是为了将数据库能兼容Oracle,Oracle变量名标示符不能超过30个字符)

2:所有用户自定义的数据库对象名称统一使用形如“小写首字母+下划线+混合拼写”的格式,其中小写首字母表示对象类型。
具体规则参见下表。


用户表         t_
存储过程       p_
函数           f_
触发器         tr_
视图           v_
链接服务器     lnk_
字段名         无前缀

注:如果同一数据库下有不同的业务模块,可在大前缀后再跟业务名.
   如 t_msg_userinfo  (msg表示业务名)


说明:
A.Sql Server系统对象多以sys开头,因此编码时禁止以sysObjectName形式为用户创建的对象命名。
B.Sql Server系统存储过程以sp开头,建议用户自定义的存储过程不要与此相同。

3:所有用户定义的存储过程或函数中使用的变量、常量、异常等统一采用小写首字母+简短单词或缩写的格式,
其中的小写首字母代表变量的类型,具体参见下表:(补充数据类型)

4:用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。 
示例:
begin     -  end        开始   - 结束
start     -  finish     启动   - 完成
first     -  last       第一个 - 最后一个
prior     -  next       前一个 - 后一个
add       -  remove     增加  -  删除
create    -  destroy    创建  -  析构
get       -  set        获取  -  设置
increment -  decrement  增量  -  减量
lock      -  unLock     加锁  -  解锁
open      -  close      打开  -  关闭


5:标识符的命名要清晰、明了,有明确含义,同时使用完整的英文单词或大家基本可以理解的缩写,避免使人产生误解。不允许使用除小写字母、数字、_、@以外的其他字符。

6:命名中若使用特殊约定或缩写,则要有注释说明。

7:使用有意义、易于记忆、描述性强、简短及具有唯一性的英文单词。不允许使用除小写字母、数字、_、@以外的其他字符。不允许有个人风格。 不允许使用汉语拼音。

8:对于变量命名,禁止取单个字符(如i、j、k...),建议除了要有具体含义外,还能表明其变量类型、数据类型等。形如i、j、k的变量只允许作为局部循环变量。 

9:所有的标示符、对象名命名不得使用保留字、关键字。 

10:仅允许对对有长度、精度限制的类型定义自定义类型。


六:注释规范

1:一般情况下,源程序有效注释量必须在30%以上。

2:在数据库脚本文件头部应进行注释,注释必须列出:生成日期、作者、内容、功能、修改日志等,头文件的注释中还应有函数或过程功能简要说明、入口参数、出口参数。

3:函数或过程头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、各返回值表示的意义, 调用关系(函数、表)等、取值范围。 

4:对存储过程的任何修改,都需要在注释最后添加修改人,修改日期及修改原因等信息.

5:边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。 

6:注释的内容要清楚、明了,含义准确,防止注释二义性,在注释中不允许使用缩写。

7:注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。不允许在一行代码或表达式的中间插入注释。

8:注释与所描述内容进行同样的缩进。 

9:对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。 

10:在程序块的结束行右方加注释标记,以表明某程序块的结束。

11:对于单行注释使用“--”,对于多行注释可考虑使用“/**/”。

12:语句、参数、变量后的注释采用左对齐方式

13:通过对存储过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。 

14:在代码的功能、意图层次上进行注释,提供有用、额外的信息。 


七:基本语法规则

1:使用 SQL-92 标准句法。

2:决不要依赖于 SELECT 语句会按任何特定顺序返回行。如果有顺序依赖关系,需要使用ORDER BY 子句指定顺序。

3:不要在 T-SQL 代码中使用双引号。字符常量应该使用单引号。

4:尽量使用表变量来代替临时表。SQL Server 2000以上版本中,表变量大大优于临时表。

5:避免使用“未声明的”功能,例如系统表中未声明的列、T-SQL 语句中未声明的功能或者未声明的系统存储过程或扩展的存储过程。

6:避免在业务代码使用系统存储过程,如xp_cmdshell。

7:避免隐式的数据类型转换。需要类型转换的地方一定要使用函数进行显示转换。

8:判断变量是否为空,应使用 is null 或 is not null 进行比较。对于如果可能为空的变量使用,需要先判断是否为空,或者使用 isnull 函数进行空值的转换。

9:确保变量和参数的类型和大小与表数据列相匹配。

10:代码中不允许出现“*”的用法,必须用实际的字段名代替。

11:避免隐式解析对象名称,确保所有对象都归 dbo 所有。

12:连接查询超过三个表的语句应当通过存储过程的方式来实现,提高效率。使用存储过程可以避免编译的成本


八:性能规则

1:为了提高性能,应优先使用连接,然后使用子查询或嵌套查询。

2:避免对where子句中的字段使用函数。避免对where子句中的字段进行计算。

3:尽量使用where子句替换having子句,having只对统计结果进行过滤。

4:在长度允许范围内,使用integer代替numeric

5:用case语句合并多重表扫描

6:对于比较复杂的语句,或者涉及数据量较大的表的语句,可以通过做查询计划检测、调整语句性能。

7:like子句尽量前端匹配。

8:尽量不使用 "<>"

9:分解复杂查询,用常量代替变量

10:使用IDENTITY自动管理序例的产生
   如果多表张需要共同identity型字段,可以创建一个含有identity类型字段的小表,
   由sql server自动管理sequence的产生,通过ident_current('table_name')返回为任何会话和任何作用域中的指定表最后生成的标识值。


九:存储过程、函数规范

1:所有的存储过程都应在开始时设置 
   set nocount on
   此标准同样适用于触发器。

2:共用代码段可以考虑写成一个子过程(或函数),对于控制流语句,不论哪个条件最后都会执行的语句应该放在控制流结束之后执行,这样是为了节约代码,便于维护


3:检查输入参数的有效性由调用者来完成,存储过程内部不检查参数有效性(约定)。

4:确保使用到所有变量和参数。不允许存在不会使用到的变量、参数。

5:代码中声明与表的字段相对应的变量时,应保证变量名和字段名相同,数据类型与数据长度相同;
   对已有定义自定义类型,必须使用自定义类型。这样规定的目的是增强可读性。

6:存储过程中变量的声明应集中在AS和BEGIN关键字之间,不允许在代码中随处定义变量(重要)。

7:始终指定字符数据类型的长度,并确保允许用户可能需要的最大字符数,因为超出最大长度的字符会丢失

8:如果存储过程中都会用到getdate()置值,那么就在程序开始时定义一个赋值为getdate()的供整个存储过程使用的变量.

9:对所有变量和输出参数都要做初始化。

10:返回值代码含义必须要在接口设计文档和代码注释中说明,并保持一致。

11:存储过程中每个失败出口均应返回不同的自定义错误码。

12:存储过程的代码必须放在begin...end块中。



十:事务处理

1:诸如删除/清空临时表之类对数据完整性要求不高的操作,可以不放在事务中。

2:在某些特殊情况下,为了提高代码效率,可以不使用事务控制,但必须通过增加其他的容错处理以保证业务逻辑的正确性。

3:为保证数据的完整性,在存在显式事务的函数中,必须加上SET XACT_ABORT ON
   加上SET XACT_ABORT ON ,在事务内,如果不是语法错误,在执行出错后,事务将不再往下执行,整个事务将自动回滚.
   这样就无需在每条语句后加上 if @@error <> 0 的判断。


4:尽量避免使用嵌套事务


十一:游标处理

1:不推荐使用复杂或动态的游标. 应当使用可代替游标的方法。

2:使用游标推荐使用定义游标变量的方式,而不要使用常规的declare cur cursor for select ...
    declare @cur cursor
    declare @phonenumber varchar(18)
    set @cur = cursor read_only forward_only for select top 10 phonenumber from userinfo with(nolock)
    open @cur
    fetch next from @cur into @phonenumber
    while @@fetch_status = 0
    begin
        print @phonenumber
        fetch next from @cur into @phonenumber
    end

    使用这种方式定义的游标,需要显式打开,但在离开变量作用域时,将自动关闭(close @cur)和删除引用(deallocate @cur).当然也可以显式关闭和删除引用.



第二章:开发设计规范

1:优化数据库从设计开始

2:表设计原则
    规则1:如果某个字段值有多个含义,需要在相应的字段说明里说明各个值的含义。包括设计文档和脚本。

    规则2:每个表都要设置主键。如果无现成的字段可用作主键,建议添加一个自增长的整型字段。 
       强烈建议主键为一个字段。

    建议3:尽量通过业务代码保证数据的一致性,不要过多依赖主外键来保持数据一致性, 主外键关系会降低更新及插入数据的性能。

    建议4:对于重要的数据,建议在最后加一个writetime字段,定义为 smalldatetime not null default(getdate())。

3:不要过多使用触发器,尽量不能使用触发器,这会导致数据库难以维护。

4:索引原则
    规则1:创建索引必须有明确的使用目的,不允许创建无用的索引。

    规则2:频繁更新的字段不创建Clustered索引。

    规则3:索引字段不宜过多。对所选的每一列,可指出索引是按升序还是降序组织列值。

    规则4:不要在过长的字符型列上建立索引,如长度超过50的varchar字段。
       这可以避免索引占用过多的空间。

    规则5:在不同的设备上创建文件或文件组,并将索引和表分别建在不同的文件组上。

    规则6:不需要将聚集主键字段建在任何非聚集索引中。

    规则7:频繁更新的索引应该每天使用 dbcc indexdefrag 工具整理索引碎片。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
精品 精品 数据库设计规范V全文共10页,当前为第1页。数据库设计规范V全文共10页,当前为第1页。数据库设计规范 数据库设计规范V全文共10页,当前为第1页。 数据库设计规范V全文共10页,当前为第1页。 目的 本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦。同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好的保证。 数据库设计是指对于一个给定的用环境,构造最优的数据库模式,建立数据库及其用系统,有效存储数据,满足用户信息要求和处理要求。 适用范围 本规范的适用人员范围包括实验室的所有开发人员以及在实验室承接数据库开发的软件人员。 本规范的适用IT范围包括数据库对象的命名规范、设计原则、SQL语句的设计和使用、SQL语句的性能优化建议、其他与性能有关的设计原则以及设计工具的选择。 命名规范 通用规范 不同的数据库产品对对象的命名有不同的要求,因此,数据库的各种对象的命名、后台程序的代码编写采用大小写敏感的形式,便于用系统适不同的数据库平台; 采用英文单词或英文短语(包括缩写,如果没有约定的缩写,则采用该单词前4个字母)作为名称,不能使用无意义的字符或汉语拼音; 每个数据库对象表,视图,字段,存储过程,不要用任何数据库的关键词作为名称。凡是能写注释的地方,该写上注释,以便查看; 名称该清晰明了,能够准确表达事物的含义,最好可读,遵循"见名知意"的原则; 数据库设计规范V全文共10页,当前为第2页。数据库设计规范V全文共10页,当前为第2页。长度不要超过30个字符,在PD设置生成时,部分数据库对象会自动截取到30位; 数据库设计规范V全文共10页,当前为第2页。 数据库设计规范V全文共10页,当前为第2页。 所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线),共63个字符。不允许使用其他字符作为名称(注释除外),尽量不要使用0-9。 数据库(Database)的命名规范 数据库名称采用项目名称或项目名称缩写,名称全为大写,例如:CAPP、PDM。 表(Table)的命名规范 数据表名由前缀、模块名称与实际名称组成,以_(下划线)衔接; 前缀使用大写字母T,表示表; 模块名称用来表示某种从属关系,表示这种从属关系的一个主要目的是,从表名能够大概知道如何去找相关的人员; 实际名称采用可以明确表示该表意义的英文单词或单词组合,每个单词首字母大写; 表名含有单词全部采用单数形式,例如:用Order而不是Orders。 Eg: T_Order_OrderItem:表示订单模块的订单详细记录表 字段(Field)的命名规范 使用骆驼式命名法,第一个单词以小写字母开始,后面每一个单词的首字母都采用大写字母; 如果字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词; 布尔型字段以一些助动词开头,例如:isChecked表示用户是否通过检查; 数据库字段必须有明确的字段说明; 主键以表名(实际名称)与Id组成,例如:orderId; 外键与主键表的主键列名保持一致。 数据库设计规范V全文共10页,当前为第3页。数据库设计规范V全文共10页,当前为第3页。约束的命名规范 数据库设计规范V全文共10页,当前为第3页。 数据库设计规范V全文共10页,当前为第3页。 3.5.1唯一索引命名 唯一索引名由前缀、表名与字段名组成,以_(下划线)衔接; 唯一索引名全部为大写。 前缀使用大写字母U,表示唯一; 如果存在多字段唯一索引,取每字段前三个字符加下划线组合,例如: 在custom、cutting、curtail上建立唯一索引,命名为U_表名_CUS_CUT_CUR; 如果前三个截取字符相同,就从字段名称不同的字符开始取三个字符加下划线组合,如:在 custid、custom、custname上建立唯一索引,命名:U_表名_TID_TOM_TNA。 3.5.2主键命名 主键名由前缀、表名与字段名组成,以_(下划线)衔接; 主键名全部为大写。 前缀使用大写字母P,表示主键; 如果存在多字段主键,取每字段前三个字符加下划线组合,例如:在 custom、cutting、curtail上建立主键,命名为PK_表名_CUS_CUT_CUR; 如果前三个截取字符相同,就从字段名称不同的字符开始取三个字符加下划线组合,如在 custid、custom、custname上建立主键,命名:P_表名_TID_TOM_TNA。 3.5.3外键命名 外键名由前缀、表名、主表名与字段名组成,以_(下划线)衔接; 外键名全部为大写。 前缀使用大写字母F,表示外键。 数据库设计规范V全文共10页,当前为第4页。数据库设计规范V全文共10页,当前为第4页。常用字典对照表 数据库
数据库设计规范-编码规范 数据库设计规范-编码规范全文共25页,当前为第1页。数据库设计规范-编码规范全文共25页,当前为第1页。数据库编码规范 数据库设计规范-编码规范全文共25页,当前为第1页。 数据库设计规范-编码规范全文共25页,当前为第1页。 1 目的 为了统一公司软件开发的设计过程关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2 范围 本规范适用于全体开发人员,作用于软件项目开发数据库设计、维护阶段。 3 术语 Ø 数据库对象:在数据库软件开发数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。 Ø 物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,该有具体的配置规划。一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。 Ø 逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库其他特性处理相关的设计等。 4 设计概要 4.1 设计环境 a) ORACLE 11G R2 数据库 ORACLE 11G R2 操作系统 LINUX 6以上版本,显示图形操作界面 b) MS SQL SERVER 2005 数据库设计规范-编码规范全文共25页,当前为第2页。数据库设计规范-编码规范全文共25页,当前为第2页。数据库 SQL SERVER 2005 企业版 打sp3以上补丁和安全补丁 操作系统 WINDOWS 2008 SERVER 4.2 设计使用工具 a) 使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说明。对于SQL Server 尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQL Server) b) 通过PowerDesigner 定制word格式报表,并导出word文档,作为数据字典保存,格式。(PowerDesigner v10 才具有定制导出word格式报表的功能)。对于SQL Server 一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。 c) 编写数据库数据库、建数据库对象、初始化数据脚本文件 4.3 设计原则 a) 采用多数据文件 b) 禁止使用过大的数据文件,unix系统不大于2GB,window系统不超过500MB c) oracle数据库必须将索引建立在索引表空间里。 d) 基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能 e) 大文本字列、blob列要独立出一张表,此表只有id和blob(或大文本)列 f) 为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用sa或者系统管理员身份进行数据库设计。 4.4 设计的更新 a) 在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。 b) 运行阶段,由数据库管理员进行维护。 c) 如对表结构进行修改,先在数据字典文档进行修改,最后在数据库进行修改。如果修改的是数据库字典表,必须由数据库管理员进行。 数据库设计规范-编码规范全文共25页,当前为第3页。数据库设计规范-编码规范全文共25页,当前为第3页。d) 编写更新的SQL代码,如果使用PowerDesigner,禁止由PowerDesigner直接连数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改) e) 修改数据库要通过SQL,禁止其它方式对数据进行修改 f) 修改数据库SQL要添加说明后保存备查 5 命名总体原则 Ø 设定的前缀一律用小写字母 Ø 标识名称命名全部小写 Ø 整个命名的全长不得超过30个字母 Ø 全部使用字母和下划线'_',不能使用文和其他字符,有特别情况允许使用末尾数字编号。例如:t_Finace1, t_Finace2... Ø 命名名称来自于业务,全部采用英文单词 Ø 英文单词过长可以采用通用的缩写,尽量表达出业务的含义 Ø 如需要两个以上的英文单词做标识名称,单词之间要用下划线'_'连接 Ø 名称全是由名词组成的,名词由大范围到小范围排序取名 Ø 完成某功能的名称,如函数和过程,以动宾形式取名 6 命名规范(逻辑对象) 6.1 数据库结构命名 a) 数据库命名 数据库的命名要求使用与数据库意义相关联的英文字母,即<业务系统名称>。 例如:china care 数据库的命名为ccnet; 客户资料数据库的命名为Customer_Info。 b) 数据库日志设计命名 数据库设计规范-编码规范全文共25页,当前为第4页。
数据库管理规范 版本号:V1.0 信息科 2017年4月 数据库管理规范 1 规范说明 3 2 维护管理安全规范 3 3设计规范 4 4. SQL编写规范 7 5. 数据库备份与恢复策略规范 8 6开发测试与上线安全规范 10 7 监控 10 8连接池使用规范 11 9 数据库重要级别划分 11 10 数据库安装规范 12 11 业务上线数据库部分规范 13 1 规范说明 本规范是针对数据库使用,维护管理,设计开发等。 2 维护管理安全规范 2.1数据库版本使用规范【强制】 MYSQL使用5.6.39社区版本 2.3数据库账户安全与管理规范 2.3.1 密码安全【强制】 密码不少于8位,包含数字,字母,字符 密码不该和用户名一致 删除数据库默认空用户账户 必须修改root密码 2.4账户安全管理【强制】 为用程序设立独立访问账户 禁止开发工程师通过用帐号登录生产数据库 禁止QA申请线上账号与使用账号登陆线上环境进行测试 数据库只有root用户具有最高管理权限 备份数据库用户要单独建立,并专属备份恢复操作 数据库安装后删除或锁闭不需要使用的数据库账号 数据库管理员账户可以锁定和解锁其他用户 数据库管理账户在空闲5分钟以上会自动退出 数据库管理权限账号不能超过2个 2.5数据库日志管理规范【强制】 windows、linux 下的日志管理 Windows系统开启日志功能,记录系统和系统各个进程的相关信息 linux的操作系统要开启系统日志 Mysql数据库如果使用了innodb引擎必须打开二进制日志 Mysql必须打开慢日志,并且将慢日志阀值设置为1-2秒之间 对Mysql的错误日志等要进行定期查看,定期清理和定期备份管理 2.6数据库架构规范【强制】 2.6.1 mysql数据库高可用 MYSQL 采用复制+第三方心跳软件或者第三方集群架构(经测试后)实现近7X24小时高可用性 要求,数据库架构必须能够实现故障自动迁移,满足业务7X24小时持续服务要求 3设计规范 3.1命名规范【强制】 3.1.1表的命名 表的名称在T_后增加一个或者多个后缀,表名、字段名必须使用小写字母或数字;禁 止出现数字开头,禁止两个下划线间只出现数字。数据库字段名的修改代价很大,因 为无法进行预发布,所以字段名称需要慎重考虑。 3.1.2视图命名:V_相关表名(或者根据需要另取名字) 3.1.3存储过程命名:PRO_存储过程名(用英文表达存储过程意义) 3.1.4函数命名:FUN_函数名称(用英文表达函数作用) 3.1.5触发器命名:TRI_触发器名称(用英文表达触发器作用) 3.1.6索引命名:I_表名_字段名(如果存在多字段索引,取每字段前三个字符加下划 线组合,如:在 hyid,hyname,hymobile上建立联合索引,命名:I_表名_hyi_hyn_hym,如果前三个截取字 符相同,就从字段名称不同的字符开始取三个字符加下划线组合,如:在 zhyid,zhyname,zhymobile上建立联合索引,命名:I_表_id_nam_mob) 3.1.7唯一索引命名:UI_表名_字段名(如果存在多字段唯一索引,取每字段前三个字 符加下划线组合,如:在 hyid,hyname,hymobile上建立唯一索引,命名:UI_表名_hyi_hyn_hym,如果前三个截取 字符相同,就从字段名称不同的字符开始取三个字符加下划线组合,如:在 zhyid,zhyname,zhymobile上建立唯一索引,命名:UI_表_id_nam_mob) 3.1.8主键命名:PK_表名_字段名(如果存在多字段主键,取每字段前三个字符加下划 线组合,如:在 hyid,hyname,hymobile上建立主键,命名:PK_表名_hyi_hyn_hym,如果前三个截取字符 相同,就从字段名称不同的字符开始取三个字符加下划线组合,如:在 zhyid,zhyname,zhymobile上建立主键,命名:PK_表_id_nam_mob) 3.1.9外键命名:FK_表名_主表名_字段名 10. Sequence命名:SEQ_表名_列名(或者根据需要另取名字) 2. 设计原则 3.2.1表的设计 【强制】每个表,都必须要有主键。主键是每行数据的唯一标识,保证主键不可随意更 新修改,在不知道是否需要主键的时候,请加上主键,它会为你的程序以及将来查找 数据的错误等等,提供一定的帮助; 【强制】所有的MySQL数据库除历史原因外,都必须采用UTF8编码 【建议】一个表的某列与另一表有关联关系的时候, 请在用程序维护外键关系,如果在数据库建立外键约束请遵循以下几点: 尽量少使用外键,在高并发下数据库会增加较大开销; 不要以数据操作不方便为理由而不建外键。加上外键以后,一些

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值