zoukankan      html  css  js  c++  java
  • [数据库基础]——编码标准之命名

    阅读导航

    表 Tables、视图 Views

    存储过程 Stored Procedures

    触发器 Triggers

    索引 Indexes

    主键 Primary Keys

    外键 Foreign Keys

    Defaults

    列 Columns

    脚本命名

    一个语句写十遍,居然大部分时候都是不一样的。上网找了一些SQL的开发标准文档,结合项目中的使用,写一些关于自己SQL的开发标准文档。

    解编码标准就是一套写代码的指南、规则、约定的集合。编码标准应该足够灵活并且不会给开发造成负担。作为一个开发者来说,新接触一个项目,个人认为最重要的是熟悉当前项目的开发标准。这样不仅有利于快速熟悉已有代码和添加新代码,而且对以后的维护也很重要。

    表 Tables、视图 Views

    规则:使用Pascal命名法,并以‘s’ 或者‘es’ 结尾的复数形式。

    例子:

    表:Products,Customers

    视图:CurrentProductsLists

    如果涉及到一组相关的表,那么就是用’_’

    例子:

    Products_Asia,Products_Europe

    在表和视图命名,还是有一些差异的,比如:以 ‘TB_’、 ‘tbl_’ 作为表名的前缀,以‘VW_’ 作为视图名的前缀。

    存储过程 Stored Procedures

    规则:sp<应用名>_[<组名>_]<行为><表名/逻辑实例>,多个单词时仍然使用Pascal命名法

    例子:

    spOrders_GetNewOrders,spProducts_UpdateProduct

    也有以 ‘prc_’作为存储过程前缀

     

    触发器 Triggers

    规则:TR_<表名>_<行为>

    例子:

    TR_Orders_UpdateProducts

    注:不鼓励使用触发器

     

    索引 Indexes

    规则:IX_<表名>_<使用’_’分隔多列>

    例子:

    IX_Products_ProductID 

     

    主键 Primary Keys

    规则: PK_<表名>

    例子:

    PK_Products,PK_Orders

     

    外键 Foreign Keys

    规则:FK_<表名1>_<表名2>
    例子:

    FK_Products_Orderss

     

    Defaults

    规则:DF_<表名>_<列名>

    例子

    DF_Products_Quantity

     

    列 Columns

    规则:使用Pascal命名法,涉及到其他表的列的话,就使用<表名>列名

    例子:

    Customers表:ID,Name

    Orders表:ID,CustomerID

    脚本命名

    规则:

    存储过程的脚本名称以 ’sp_‘ 作为前缀

    Schema的脚本名称以 ’def_‘ 作为前缀

    Conversion脚本名称以 ’conv_‘ 作为前缀(对这个概念还不是很清楚)

    Rollback的脚本名称以 ’rbk_‘ 作为前缀

    例子:

    sp_GetNewOrders.sql,def_Orders.sql,conv_Orders.sql,rbk_Orders.sql

    一般规则

    命名中不要用空格,避免使用SQL的关键字,如果使用关键字,讲关键字放在’[]‘中(如:[Year]),建议做好所有的列名都是用’[]‘

     关于命名规则,如果有补充请留言

    没有任何规约对数据库开发的命名是绝对的,只要适合项目,适合开发者,并被大部分开发者所接受,就是好的标准,

  • 相关阅读:
    compilation debug= true targetframework= 4.0 / configuration error
    Using Temp table in SSIS package
    Using an Excel Destination in SSIS with x64
    SQL Server 中的两个查询级别的Hint NOLOCK和ROWLOCK
    SQL Server中的timeout设置
    Global.asax 转
    VC++动态链接库编程之MFC规则DLL
    堆栈详解(数据与内存中的存储方式) .
    [C++]拷贝构造函数和赋值运算符重载
    #ifdef __cplusplus extern "C" { #endif”的定义的含义 .
  • 原文地址:https://www.cnblogs.com/BoyceYang/p/3166074.html
Copyright © 2011-2022 走看看