数据库表与XML用途
一、数据库表分类: 表前缀主要是为了区分不同功能的表,而非解释表的功能,表的功能由表名来解释。前 面要求表名的长度要控制在30个字符以内,在此前提下,为了尽可能不影响表的命名, 表前缀应该越短越好。我们建议表前缀控制在两个以内。具体表前缀添加规则建议如 下,括号内的单个大写字母表示要添加的前缀。
这里以SQLserver2014数据库为例说明:
(1) 系统表(S_):System,系统配置相关的基本信息表。系统用户表 (S_USER)、系统角色表(S_ROLE)、系统菜单(S_LINK_MENU)、操作日志 (S_OPERATION_LOG)、登录日志(S_LOGIN_LOG)、系统字典(S_DICTIONARY)、系统 字典类型(S_DICTIONARY_TYPE)等。
(2) 字典表(D_):Dictionary,非系统字典外的字典表。在“设计规范”—— “相关注释”——“字典字段”中提到过字典表的定义,除了数据库中的通用字典表, 还有一些常见表,比如地区表(D_REGION)、ICD编码(D_ICD)等,也是一种字典表, 这里的D_前缀即加在这类字典表名前面。 国家、省份、城市、地区、
(3) 中间表(R_):Relationship,多对多关系中间表。具体命名方式建议为:R_ 主表名_从表名,在多对多关系中其实不分主从表,这里我们规定核心表为主表,另外一 个为从表。比如用户角色关系中,用户表(S_USER)为主、角色(S_ROLE)表为从,那 中间表就命名为R_USER_ROLE。当中间表名超长时,则根据实际情况缩写主从表名,建议 优先缩写从表表名。
(4) 业务表(B_):Business,核心业务涉及的基本信息表。这里的业务是非系统 配置业务相关的,比如登录、注册、权限这些业务涉及的表都是和系统配置相关的,前 缀应该是S_,而非B_。比如在线商城的项目中订单业务涉及的表即是核心业务表,会诊 系统中会诊单业务涉及的表即是核心业务表,如果项目庞大,涉及业务较多,可以在B后 面继续加单字母区分不同的业务,BA_、BB_、BC_……,没必要非得和某个英文对应,只 是个代号,和项目组的人员说明即可。 表名前缀的说明如上,已经足够明确,除此外还应该避免无谓的表格后缀。比如存储客 户信息的表直接命名为Guest而非GuestInfo,存储航班信息的表直接命名为Flight而非 FlightList。还有命名表时,一律使用单数形式。例如,使用 Employee,而不是 Employees,总之,表的命名应该简单明了。
二、数据库表命名规范:
(1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写, 表名中包含的单词首字母大写。
(2)数据库表名应该有意义,并且易于理解,最好使用可以表达功能的英文单词或缩写,如果用英文单 词表示,建议使用完整的英文单词。
(3)表名不可以太长,最好不要超过3个英文单词长度(22个字母)。
(4)在数据库表命名时应该用英文单词的单数形式,如员工表命名:应该为Employee而不是 Employees .
(5)如果是后台表命名时应该在表名基础上加上后缀 _b (back 首字母 )
(6)在表创建完成前,应该为表添加表的注释。
三、表字段命名规范
(1)数据库表字段,应该是有意义而且易于理解的,最好是能够表达字段含义的英文字母 (有人认为如果用英文单词作为字段,因为翻译工具不同,而字段不统一建议使用汉语拼音首字母缩 写;有人认为用汉语拼音缩写看起来不直观,老半天也不知道到底这个字段是干什么的)
(2)系统中所有属于内码,即仅用于标识唯一性和程序内部用到的标识性字段,字段名称建议取 为 ID ,采用类型为整型int或长整型bigint.
(3)系统中属于是业务内的编号字段,代表一定业务信息,建议字段命名为 code , 如工作单编号code .
(4)不要在数据库表字段(列名)中包含数据类型,如:datetime
(5)不要在数据库表字段(列名)命名时重复表名,可以使用表名首字母(不包含数据库表名前缀) 注意: 不要在数据库表字段(列名)命名时 不建议使用数据库关键字,如:name,time ,datetime password 等。
四、表设计规范
(1)所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、 uniqueidentifier、binary、sql_variant、binary、varbinary外,必须有默认值。字符型的默认值为一个 空字符值串’’;数值型的默认值为数值0;逻辑型的默认值为数值0; 其中:系统中所有逻辑型中数值0表示为“假”;数值1表示为“真”。 datetime、smalldatetime类型的字段没有默认值,必须为NULL。
(2)当字段定义为字符串形时建议使用varchar而不用nvarchar。
注 :在MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个 字节的数据,起始位和结束位占去了3个 字节。
(3)建议在大多数表中(如工作单),应都有以下字段: 字段名说明类型默认值 CreatorID创建者int 默认值为 0 CreatedTime创建时间Datetime 默认值为NULL
(4)字段的描述 a.字段必须填写描述信息(注释) b.尽量遵守第三范式的标准(3NF) 表内的每一个值只能被表达一次(列名不重复) 表内的每一行都应当被唯一的标示(标识唯一性,如 自动增长 主键) 表内不应该存储依赖于其他键的非键信息
(5)加索引规则 a.表建好后数据库自动为表生成一个索引(为自动增长的列生成唯一索引),如果在对这列添加索 引,数据库会给一个警告,内容大概是,已经为这列添加了索引,建议修改索引名称和自动增长列名保 持一致,为了方便使用。 b.如果在添加索引时,建议索引名称和数据库列名保持一致,为了方便使用 c.如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引。 d.如果字段与其它表的字段相关联,需建索引。 e.如果字段需做模糊查询之外的条件查询,需建索引。 f.除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引。
XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享。
XML 把数据从 HTML 分离
如果您需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。
通过 XML,数据能够存储在独立的 XML 文件中。这样您就可以专注于使用 HTML/CSS 进行显示和布局,并确保修改底层数据不再需要对 HTML 进行任何的改变。
通过使用几行 JavaScript 代码,您就可以读取一个外部 XML 文件,并更新您的网页的数据内容。
XML 简化数据共享
在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。
XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。
这让创建不同应用程序可以共享的数据变得更加容易。
XML 简化数据传输
对开发人员来说,其中一项最费时的挑战一直是在互联网上的不兼容系统之间交换数据。
由于可以通过各种不兼容的应用程序来读取数据,以 XML 交换数据降低了这种复杂性。
XML 简化平台变更
升级到新的系统(硬件或软件平台),总是非常费时的。必须转换大量的数据,不兼容的数据经常会丢失。
XML 数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新的应用程序或新的浏览器。
XML 使您的数据更有用
不同的应用程序都能够访问您的数据,不仅仅在 HTML 页中,也可以从 XML 数据源中进行访问。
通过 XML,您的数据可供各种阅读设备使用(掌上计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。
XML 用于创建新的互联网语言
很多新的互联网语言是通过 XML 创建的。
这里有一些实例:
XHTML
用于描述可用的 Web 服务 的 WSDL
作为手持设备的标记语言的 WAP 和 WML
用于新闻 feed 的 RSS 语言
描述资本和本体的 RDF 和 OWL
用于描述针针对 Web 的多媒体 的 SMIL
假如开发人员都是理性的
假如他们都是理性的,就让未来的应用程序使用 XML 来交换数据吧。
未来也许会出现某种字处理软件、电子表格程序以及数据库,它们可以使用 XML 格式读取彼此的数据,而不需要使用任何的转换程序。