.  Naming Conventions

1. Table Naming

Rule 1a ( Prefix) 新加的Table要加上適當的前缀

e.g.  mUsr, eTxn, tmpRollex,  tSmsInfo,  zLogEvt

前綴

描述Desc

m

表示相對固定的,e.g. mUser ,mCustomer

e

表示會變動的,比如交易記錄eTxn

temp

表示臨時的,可以刪除 e.g. tempRollex

t

表示由程序臨時生成,提供給程式臨時調用。e.g. tSmsInfo

temp與t的區別是,在程序正式交付使用后,temp不參與數據交互,可以刪除,而t不能刪除。

z

表示日誌類.e.g. zLogEvt

(注:Insight的database前缀有两个地方有区别,màVld,  eà去掉)

Rule 1b (Extra Field) 每個Table加上4个Field以記錄操作信息:

Field Name

Date Type

描述Desc

wCreateDate

Datetime

創建時間

wCreateUser

Bigint

創建用戶

wStampDate

Datetime

修改時間

wStampUser

Bigint

修改用戶

Rule 1c (db table) 新建Table.sql,先在.eap文檔裏面加說明,變量類型全部大寫,并對齊, CONSTRAINT要加在字段裏面.

//good

CREATE TABLE [tSmsInfo] (

[wRowId] BIGINT IDENTITY(1,1)  NOT NULL,

[wBatchNo] UNIQUEIDENTIFIER NOT NULL,

[wTemplateType] VARCHAR(30) NULL,

CONSTRAINT [PK_tSmsInfo] PRIMARY KEY CLUSTERED ([wRowId])

);

//bad

CREATE TABLE [tSmsInfo] (

[wRowId] bigint identity(1,1)  NOT NULL,    /* 自增 */

[wBatchNo] uniqueidentifier NOT NULL,    /*批次号,GUID。 */

[wTemplateType] varchar(30) NULL,    /* 模板*/

);

GO

ALTER TABLE [tSmsInfo]

ADD CONSTRAINT [UQ_tSmsInfo_wRowId] UNIQUE ([wRowId]);

GO

新建Table要點說明

e.g.

◆將Table及備註加到eap文件

◆變量類型全部大寫

BIGINT IDENTITY(1,1)  NOT NULL

◆對齊,變量類型之間要對齊

[wBatchNo] UNIQUEIDENTIFIER NOT NULL,

[wTemplateType] VARCHAR(30) NULL,

◆CONSTRAINT等加到字段裏面

[wTemplateType] VARCHAR(30) NULL,

CONSTRAINT [PK_tSmsInfo] ...

◆Create Table sql字段不用加備註

/* 模板*/

2.Column字段

Rule 2a (Prefix)  字段以w作為前綴 ,e.g.  wName, wUserId

3.View

Rule 3a (Prefix)  view以vw作為前綴 ,e.g.  vwUser, vwCustomer

 

4.Stored Proc

Rule 4a (Prefix)  Stored Proc要加上適當的前綴

e.g. spaUser,spqUserLst,sprMember,spzLogEvt

前綴

描述Desc

spa

表示Insert Or Update.

spq

表示query查詢.

spr

表示 Report用到的sp

spz

與z為前綴的日誌類table的操作.

Rule 4b (Parameter)  參數以@p作為前綴

e.g. @pUserId,  @pRemark

Rule 4c (Variables) 變量以@d 作為前綴,以區別參數

e.g. @dUserName, @dDtCur

Rule 4d (Syntax) 語句對齊並且要有間隔等,關聯字大寫,Table整齊劃一,一目了然.

//good

SELECT c.wCustId, c.wCName AS wCustName

FROM [dbo].[vwCustomerDtl] AS c LEFT OUTER JOIN

[dbo].[mCustPrefer] AS m ON c.wCustId = m.wCustId

WHERE c.wCardType <> 'STAFF'

ORDER BY c.wCardType DESC;

//bad

select c.wCustId, c.wCName wCustName from vwCustomerDtl  c LEFT OUTER JOIN

mCustPrefer m on c.wCustId = m.wCustId where c.wCardType <> 'STAFF' order by c.wCardType desc

Store Proc要點說明

e.g.

◆Select與From要換行,並且間隔一個Tab,From、Where與Order By要對齊

SELECT ***

FROM ***

WHERE  ***

◆幾個 Table Join要換行,並且Table之間要對齊.

FROM [dbo].[vwCustomerDtl] AS c LEFT OUTER JOIN

[dbo].[mCustPrefer] AS m ON

◆關鍵字要大寫

SELECT, FROM, ORDER BY

◆重命名中間在用AS

c.wCName AS wCustName,[vwCustomerDtl] AS c

◆Table名要加上dbo

[dbo].[vwCustomerDtl]

◆一個語句結束后要加分號“;”

;

c#

1. Main

Rule 1a 定義變量,儘量避免用var,用具體的變數類型, 便于閱讀代碼,。

e.g.

//good

string _msg = string.Empty;

//bad

var _msg = string.Empty;

Rule 1b  數據庫查詢,儘量少用Linq, 與多個Table關聯的查詢,要用Stored Proc,方便Debug以及修改. e.g.

//good

List<spqGetSiteLstByTaskIdResult>  _lst =  db.spqGetSiteLstByTaskId(pTaskId).ToList()

//bad

var query = from pt in this.ObjectContext.SpaGetPartiesTypes(wCategory)/

join so in db.SiteOrgs.Where(x => x.wSiteRowId == wSiteRowId) on pt.wRowId equals so.wOrgTypeId into ps

from so in ps.DefaultIfEmpty(new SiteOrg() { wOrgTypeId = -1, wRECNO = -1, wSiteRowId = -1 })

join uo in db.VldUserOrgs on so.wRECNO equals uo.RECNO into psu ***

命名规范(数据库,c#)的更多相关文章

  1. mysql及php命名规范

    一.mysql命名规范 1.设计原则 1) 标准化和规范化数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能.扩展性和数据完 ...

  2. 这次一定理清晰ThinkPHP之中的模型、数据库之间命名规范

    ServiceSiteModel.class.php 这个模型操控的数据库是service_site表: <?php namespace Admin\Model; use Think\Model ...

  3. SQL Server数据库命名规范

    良好的命名习惯是一种美德,下面是个人整理的数据库命名规范: 数据库命名规范:  1. 数据库名:          1.1)用产品或项目的名字命名:         1.2)Pascal Case,如 ...

  4. Android 命名规范 (提高代码可以读性)

    android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...

  5. Oracle命名规范

    1.编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读.理解和继承. 2.适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作. 3.对象 ...

  6. C#开发命名规范

    学习C#之初,始终不知道怎么命名比较好,很多时候无从命名,终于有一天我整理了一份命名规范文档,自此我就是按照这个命名规范书写代码,整洁度无可言表,拙劣之处请大家斧正,愚某虚心接受,如有雷同,不胜荣幸 ...

  7. NET 命名规范

    1 ADO.NET 命名规范 数据类型 数据类型简写 标准命名举例 Connection con conNorthwind Command cmd cmdReturnProducts Paramete ...

  8. Android 命名规范 (提高代码可以读性) 转

    转自:http://blog.csdn.net/vipzjyno1/article/details/23542617 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件 ...

  9. ThinkPHP 模型(Model)命名规范

    一个小问题搞了好久:如果数据库的表名中有下划线,那么在用thinkphp做自动完成时注意Model类的命名要变成驼峰法,文件名和类名都要变.( 另外注意:只有使用create方法创建数据时才能调用到自 ...

  10. sql server命名规范

    命名规范 表 表名如Order/UserAccout 符合以下规范: 1.     统一采用单数形式,反对Orders 2.     首字母大写,多个单词的话,单词首字母大写,反对order/User ...

随机推荐

  1. angularjs 新窗口打开

    原文链接:angularjs 中state.go 跳转并且打开新的浏览器窗口 业务需要,需要点击打开一个新窗口,并且是点击事件触发的打开新窗口: $scope.lookLook =function(d ...

  2. repeater控件如何隐藏列?

    .aspX文件里将要隐藏的"<td>修改</td>"放在Lable标签里,隐藏实现,如:<asp:lable id=lable1 run=server ...

  3. 欢迎来到Joyful Physics博客

    本博客主要包括以下内容: 物理课程 预计会涵盖非物理专业普通物理.物理专业普通物理.理论物理(四大力学).凝聚态物理,会特别关注软物质物理,因为博主是做软物质物理的. 软硬科普 软科普写给非专业人士. ...

  4. [Machine Learning & Algorithm] 神经网络基础

    目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网.人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革.要学习深度学习,那么首先要熟悉神经网络(N ...

  5. [Machine Learning & Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族

    声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 写在前面 记得在<Pattern Recognition And Machine ...

  6. (转)Sql日期时间格式转换

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...

  7. C++编译期间字节序判断

    当前常用的字节序一般就两种,大端序和小端序. 下面列出四种字节序的表达方式.在对应平台下,内存布局为{0x,00,0x01,0x02,0x03}的四字节,表示为十六进制的值就如下面代码所示的. END ...

  8. Owin Self Host

    http://owin.org/ Owin 定义了webserver和webapplication之间的标准接口,目标就是为了解耦webapplication对webserver的依赖, 就是说以后可 ...

  9. pycharm2016 激活

    pycharm 2016 专业版 激活方式选第二种 code 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibG ...

  10. Python3.5在Windows 7下连接ORACLE数据库

    1.首先需要安装好oracle数据库,本机适用plsql连接数据库正常,记录下数据库名称 2.安装cx_oracle模块 pip install cx_Oracle 3.python中引入模块 imp ...