sql相关编码大全
sql相关编码大全
1。尽量使用编码表;
2。有唯一性质的记录表,建立主键索引;
3。将描述同一种对象的属性数据设计在同一种表中;
4。有详细明细说明的,要建立子表;
5。为提高查询速度,建立必要的索引;
6。为防止数据库表中存在不合理的数据,建立必要的约束和默认;
7。定长字符项使用CHAR,NCHAR类型;不定长字符项使用VARCHAR,NVARCHAR;
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文标准了.
我们的目的是要能轻松方便的解决问题.整个系统在中文环境下应用,库结构非常清晰,不用总是翻阅说明文档.而且有时说明文档不一定能说明问题.况且,中文 NT2000与SQL2000内核都使用和允许使用中文.
我使用E文有如下问题:
1 可读性差. 看一条SQL语句不知道它在干什么.
2 表达的意思不清晰.如果以英文单词作表名和字段名,除非所有程序员都是英文高手,看得懂所有行业的术语,否则就可能要翻字典了.
3 按一定的规则命名,重名多.很多人使用拼音缩写,但如果有相似或相近的拼音,就会分不清楚,况且拼音有时也不一定读得很准.
所以,为我们为何简单的事情不做,非要搞得复杂才算是所谓的"标准"呢
最好不要用中文来命名,这样当语言环境变化以后,移植起来会遇到问题,很有可能出现乱码,e文到那个国家都不会出现问题,我们为什么不考虑远一些,不能埋下这些隐患
to stwx()
(不用总是翻阅文档..)恐怖,居然有这样搞开发的!
(移植难除外..)我不知道这样重要的情况怎么能够除外!
况且查字典多学点单词也不是坏处
如果:
if ....then.....
变成
如果....那么..... 你会有什么感想?
最好的是建立术语表,建立一套规范,一套好的规范绝对可以解决你的3个问题
做程序不是画画,有的东西必须按照规范来。
一个项目上来,最少也有几十个数据表,里面这么多的字段,你有不用查文档,都把所有字段都背下来?你能确定一看SQL语句知道它在做什么!使用中文命多,大家不要钻牛角尖,以方便,可读性为主! 如果觉得E文更方便,更可读,就使用E文,就像IF..Then,而不要拘泥于什么型式,要不就太迂腐了!
关于移植,重不重要,在于所开发的项目使用环境.至少,我还没有搞过要卖遍全球的产品.既然是国内的应用,只要确保在简体中文环境下没问题就可以了.
试问,现在有谁在使用E文的NT2000或SQL2000开发中文产品,毕竟很少吧!
我们是这样定义的
表 xxxx_xxxxxxx_x
前三位是系统代号,比如cis gis分别表示不同的应用。
第4为 是c ,m ,h c表示代码维护表一般是单表,m表示比较重要的表,h表示历史记录表.
中间那一段是表描述
最后一位是h d r,h表示主从表的主表,d表示主从表的从表,r表示联系表。
这种设计的好处,着眼于开发,是命名给程序员看的,看到这种表就知道套用哪种模板来开发。因此能提高开发速度,实践证明确实快不少!供大家参考
说说我通常的规则吧
表命名我绝不会加T或tbl前缀的
记得以前有人说过,如果你有几百个表
你就知道这样命名的痛苦了
我一般是加功能前缀,比如说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$独占了此字头。
其余如别人所言,大家差不多。