sql相关编码大全

sql相关编码大全

1。尽量使用编码表;

2。有唯一性质的记录表,建立主键索引;

3。将描述同一种对象的属性数据设计在同一种表中;

4。有详细明细说明的,要建立子表;

5。为提高查询速度,建立必要的索引;

6。为防止数据库表中存在不合理的数据,建立必要的约束和默认;

7。定长字符项使用CHARNCHAR类型;不定长字符项使用VARCHARNVARCHAR

8。日期时间最好使用DATETIME类型,便于时间的比较和计算。

9。为了节省空间,尽量减少数据冗余;为了提高处理速度,可以适当的增加数据冗余。两者的平衡要掌握好。

10。尽量将当前活动数据,与历史沉淀数据放在不同的表中。通过建立视图进行查询。以提高活动数据的处理速度。

补充一点,对前面 sky_blue(老衲) 推荐的命名规范我比较欣赏,但同时由于其文中提出对Stored Procedure的命名加前缀'sp_'应有商榷的余地,因为master表中也有'sp_'开头的System Procedure,我在一本专业SQLServer书上看到,作者建议使用'up_'意为User Procedure,我以前也习惯用sp_命名自己的Stored Procedure不过现在为了规范,还是改为使用up_,当然个人也可以使用自己认为合适的前缀来命名.不过既然要走规范化编程道路,最好还是避免定义那些容易使别人产生混淆的名称.

另外使用中文命名数据库对象包括其他程序语言中变量名的朋友们,我前面说SB可能严重一点.我也不是什么权威并不能很好的给出中文命名就有什么弊端的解释,但是全世界的程序员都约定俗成以E文为标准程序语言的大环境下,不要把所谓有'中国特色'的逻辑带入程序设计的世界中来

个人认为,如果使用中文命名没有什么弊端,就应该从解决问题的方便性去考滤命名方式.为何一定要拘泥于一种所谓的标准,标准是外国人订的,肯定是以英文为主,谁教我们使用E,,书是哪来的,外国人写的,当然是E文标准了.

我们的目的是要能轻松方便的解决问题.整个系统在中文环境下应用,库结构非常清晰,不用总是翻阅说明文档.而且有时说明文档不一定能说明问题.况且,中文 NT2000SQL2000内核都使用和允许使用中文.

我使用E文有如下问题:

1 可读性差. 看一条SQL语句不知道它在干什么.

2 表达的意思不清晰.如果以英文单词作表名和字段名,除非所有程序员都是英文高手,看得懂所有行业的术语,否则就可能要翻字典了.

3 按一定的规则命名,重名多.很多人使用拼音缩写,但如果有相似或相近的拼音,就会分不清楚,况且拼音有时也不一定读得很准.

所以,为我们为何简单的事情不做,非要搞得复杂才算是所谓的"标准"

最好不要用中文来命名,这样当语言环境变化以后,移植起来会遇到问题,很有可能出现乱码,e文到那个国家都不会出现问题,我们为什么不考虑远一些,不能埋下这些隐患

to stwx()

(不用总是翻阅文档..)恐怖,居然有这样搞开发的!

(移植难除外..)我不知道这样重要的情况怎么能够除外!

况且查字典多学点单词也不是坏处

如果:

if ....then.....

变成

如果....那么..... 你会有什么感想?

最好的是建立术语表,建立一套规范,一套好的规范绝对可以解决你的3个问题

做程序不是画画,有的东西必须按照规范来。

一个项目上来,最少也有几十个数据表,里面这么多的字段,你有不用查文档,都把所有字段都背下来?你能确定一看SQL语句知道它在做什么!使用中文命多,大家不要钻牛角尖,以方便,可读性为主! 如果觉得E文更方便,更可读,就使用E,就像IF..Then,而不要拘泥于什么型式,要不就太迂腐了!

关于移植,重不重要,在于所开发的项目使用环境.至少,我还没有搞过要卖遍全球的产品.既然是国内的应用,只要确保在简体中文环境下没问题就可以了.

试问,现在有谁在使用E文的NT2000SQL2000开发中文产品,毕竟很少吧!

我们是这样定义的

xxxx_xxxxxxx_x

前三位是系统代号,比如cis gis分别表示不同的应用。

4 c ,m h c表示代码维护表一般是单表,m表示比较重要的表,h表示历史记录表.

中间那一段是表描述

最后一位是h d rh表示主从表的主表,d表示主从表的从表,r表示联系表。

这种设计的好处,着眼于开发,是命名给程序员看的,看到这种表就知道套用哪种模板来开发。因此能提高开发速度,实践证明确实快不少!供大家参考

说说我通常的规则吧

表命名我绝不会加Ttbl前缀的

记得以前有人说过,如果你有几百个表

你就知道这样命名的痛苦了

我一般是加功能前缀,比如说bas_Customers pur_Vouch

视图,为了区分表,vw_前缀,后面带上主要相关表名,再带上功能

存储过程,pc_前缀,sp由于系统会首先查找master,所以不推荐

触发器,tg_表名_功能

字段命名,我还是喜欢类型简写+表简写+字段含义,

cCusCode -- 客户编码,varchar

具体SQL语句,关键字全部大写,declare 数据类型

凡表名,均为模块名的汉语拼音字头缩写+英文表名。

用英文的原因是至少别人还有字典可以查,能明白

你的意思。中文字头是因为简单,一般是两个字母。

zy住院mz门诊。一个公司内大家对模块应该是比较

清楚的。

如:

zy_patient 住院病人表

这样做,相同模块的数据表都排列在一起。

全局的表,

a_user

这样,全局的表均排列在前面。

全局字典表

zd_country国家字典表

字段名均使用英文,

可以用缩写,假如有通用的,则使用通用的缩写,假如没有,

则去掉元音字母。严格禁止其他形式的独创缩写。

除行业规定外,一律不使用中文拼音字头和中文。原因如上。

但是

jy_wtk证券行业内表示交易模块的委托库。

严禁使用类型前缀如nyears.因为匈牙利命名法在sql语句中根本无意义。

微软也不建议使用该方案。

其中主键一律用id.也有人建议用表名_ID.两者差不多。

用后者时某些软件回自动关连主键和外键。

字典表的字段一律是

code代码

name名称

py_code拼音码

wb_code五笔码

这样做是可以实现一个字典维护程序和输入

界面中字典的自动弹出

存储过程以up开头,原来微软都以sp开头。

后来m$独占了此字头。

其余如别人所言,大家差不多。