让你提前认识软件开发(27):数据库表及索引的创建
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了让你提前认识软件开发(27):数据库表及索引的创建,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3021字,纯文字阅读大概需要5分钟。
内容图文
![让你提前认识软件开发(27):数据库表及索引的创建](/upload/InfoBanner/zyjiaocheng/563/87f0a06d546c4ebb9058f65aa5b70713.jpg)
第2部分 数据库SQL语言 数据库表及索引的创建 数据表 (或称 表 ),是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质的内容。举个例子来说,数据库就像是一座空旷的房子,而数据表是里面的家具,没有家具的房子只是一个空壳而已。根据信
第2部分 数据库SQL语言
数据库表及索引的创建
数据表(或称表),是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质的内容。举个例子来说,数据库就像是一座空旷的房子,而数据表是里面的家具,没有家具的房子只是一个空壳而已。根据信息的分类情况,一个数据库中可能包含若干个不同用途的数据表。
表结构有简单、有复杂,这就对开发人员提出了要求。如何设计一个表的字段才是最好的?表的字段如何命名?如何定义表字段的类型?如何建立索引?等等。
1. 修改之前的建表脚本
在作者从事过的某项目中,有一个建表脚本(基于Sybase数据库)样例如下:
-- XXX
create table tb_XXX
(
AAA varchar(30) not null, -- AAA
BBB int not null, -- BBB
. . . . . .
. . . . . .
processtime1 varchar(24) default('') null, -- yyyy.mm.dd hh24:mi:ss
processtime2 varchar(24) default('') null, -- yyyy.mm.dd hh24:mi:ss
processtime3 varchar(24) default('') null, -- yyyy.mm.dd hh24:mi:ss
. . . . . .
nextprocesstime varchar(24) default('') not null, -- yyyy.mm.dd hh24:mi:ss
. . . . . .
)
go
create unique index idx1_tb_XXX on tb_XXX(AAA)
create index idx2_tb_XXX on tb_XXX(BBB)
go
可以看出,以上的建表脚本至少存在以下问题:
(1) 字段命名不是很恰当。如红色字体所示的processtime1、processtime2、processtime3,在看完之后,还不知道它们到底是什么意思。因此,对于字段的命名,要做到直观易懂,不要让别人去猜。
(2) 时间字段的默认值为空。如红色字体所示的nextprocesstime字段,其默认值为空。一般而言,对于数据库建表脚本中的时间字段,如无特殊用途,其默认值最好设置为当前时间。
(3) 建立的索引数目过少,且在时间字段上面未建立索引。在表中很多个字段,而只建立了两个索引,个数偏少,可考虑增加索引数目。此外,表中有多个时间字段,但未在其上面建立索引,要求只要在表中出现了时间字段,都要考虑在其上建立索引。
2. 修改之后的建表脚本
修改之后的脚本样例如下:
-- XXX
create table tb_XXX
(
AAA varchar(30) not null, -- AAA
BBB int not null, -- BBB
. . . . . .
. . . . . .
firstprocesstime varchar(24) default('') null, -- yyyy.mm.dd hh24:mi:ss
secondprocesstime varchar(24) default('') null, -- yyyy.mm.dd hh24:mi:ss
thirdprocesstime varchar(24) default('') null, -- yyyy.mm.dd hh24:mi:ss
. . . . . .
nextprocesstime varchar(24) default convert(varchar,getdate(),102)+' '+convert(varchar,getdate(),108) not null, -- yyyy.mm.dd hh24:mi:ss
. . . . . .
)
go
create unique index idx1_tb_XXX on tb_XXX(AAA)
create index idx2_tb_XXX on tb_XXX(BBB)
create index idx4_tb_XXX on tb_XXX(nextprocesstime)
go
修改的地方如红色字体所示。与之前的脚本相比,修改了nextprocesstime字段的默认值,将索引数目增加到3个,在时间字段上建立了索引。此外,根据一般的经验,大表索引个数不超过5个,索引最大字段数不超过4个。
3. 总结
表是数据库中最重要的数据结构之一,在创建表的过程中,一定要遵循命名规范、信息准确、索引恰当等原则。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
内容总结
以上是互联网集市为您收集整理的让你提前认识软件开发(27):数据库表及索引的创建全部内容,希望文章能够帮你解决让你提前认识软件开发(27):数据库表及索引的创建所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。