`
yupengcc
  • 浏览: 132244 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

数据库设计:表的设计命名的十个注意点

阅读更多

1.表名一般以【模块名称_具体表名】来实现,同一个模块的前缀是一样的。(Oracle大小写敏感,在SQL中可以不用"_",因为可以用大小写一起的写法。这也是可以的)

2.表名称不应该取得太长(一般不超过三个英文单词,不推荐使用中文拼音,总的长度不要超过30个字符)。表名使用英文的原因,有些项目有英文版的需要,或者这个项目是给外国做的时候,使用英文是基本的要求,应该说这是一个习惯问题,多学一点英文也不是坏事
 
3.不使用tab或tb作为表前缀(本来就是一个表,为什么还要说明)。
 
4.一些作为多对多连接的表,可以使用两个表的前缀作为表名:如:用户登录表User_Login,用户分组表User_GroupInfo,这两个表建立多对多关系的表名为:User_Group_Relation(关系统一用Relation)。注意一点,主键在做其他表的外键时,或者在被其他表引用时,字段说明和字段名尽量保持一致,比如发帖表BBS_Topic里的用户字段写成UI_ID,这样跟用户信息表User_Info的主键UI_ID保持一致,看起来舒服,对应关系很明确,也不容易错,前后不一致时容易令人费解。
  
5.当系统中有一些少量的,重复出现的值时,使用字典表来节约存储空间和优化查询。如地区、系统中用户类型的代号等。这类值不会在程序的运行期变化,但是需要存储在数据库中。一般数据库中,都有一个数据字典表,用来保存系统所用到的基础数据,大型的字段表如省份城市区域的字典表,统一以Dictionary_作为前缀。
     
6. 与字段有关,默认的一些特殊字段, 很多表中,
  比如一些业务处理表中,除了添加生成的自动编号ID(一般作为主键用),该记录创建的时间CreateDate(创建时间),该记录的创建人CreatBy(注意这里,没UI_ID(用户信息表User_Info的主键UI_ID),因为还有修改人),最后修改人LastEditBy,最后修改时间LastEditDate。(这些可以直接使用中文字符,而不使用编码,提高查询的效率)
  同时有的时候需要注意,删除的时候并不真的删除该记录,而是添加一个标识位,比如XX_DeleteStaus删除状态。1是有效的,0则是无效的。
 
7.在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。
 
8.数据库中应建立这样一个表,就是数据库本身的字段信息,表的说明,也就是数据库设计文档的一个表,方便查询使用,有什么不明的可以直接从数据库查询,数据库文档丢失,注释丢失,都可以重新起作用。
 
9.每个表都应该有一个主键,这个主键最好是数字,而且是递增的,有很多表的主键用32位字符编码,这样做的目的更多的是从安全考虑的。因为字符多时索引时效率低,而使用自增列也不是很少,比如添加主表和从表操作时,主表的主键是从表的外键,这个时候还有取返回值,然后再添加,不可以同时添加。主键可以用自定义的规则,大部分用MAX(ID)的做法,也可以自定义一个序列表,有点像序列,或者用时间的年月日秒具体到毫秒。关于列的命名,建议对数据类型也做一些规范,因为很容易确定,只有四种主要类型:数字,字符,时间,逻辑值,这些在类型上和长度上都可以定好规范,统一起来。
     
10.操作日志表,登录日志表,这是数据库中必备的两个表,这个记录也需要做进一步的保存。这个有两种情形,一是具体到单个字段的操作日志,二是整个表的操作日志。

常见的几个表具体说明:操作日志表Sys_OperateLog、登录日志表Sys_LoginLog、

           系统字典表Sys_Dictionary、系统字典表类型Sys_DicType

 

操作日志表Sys_OperateLog
中文名 字段名 注释
操作日志编号 OL_ID 索引列,日志的编号
操作类型 OL_Type 是添加,修改,删除,查询等类容(可放在通用字典表)
操作模块 OL_Module 操作模块,比如新闻模块,关联的是菜单表编号
操作内容 OL_Content 操作了什么内容,越具体越好(修改前、修改后)
操作人 UI_ID 用户的信息
操作时间 OL_AddDate 日志记录创建时间
操作IP OL_IP 操作人的IP地址
备注信息 OL_Remarks 备注信息,一些其他的需要说明的信息

 这样的一个操作日志比较笼统,不是能具体到具体的字段值更新,如果要具体到某个具体值的更新,则需要设计新的数据库

一般情况下需要这样几个表,系统中可能已经有了,但是我们拿到我们自己的数据库中来,一个是数据库列表的表(就是数据库中有几个表)(编号,创建时间,创建人,修改时间,修改人,表名,注释,是否删除),然后就是数据库表下面的字段类型(编号,创建时间,创建人,修改时间,修改人,字段名,字段类型,字段精度,字段说明,字段注释,表的编号),也就是字段列表,这时的日志操作表可以这样设计(编号,表名,被修改的字段名,修改前值,修改后值,操作人,操作时间,相关模块,操作IP) 这种能记录修改记录,但是添加和删除时记录就不是很方便控制了。

 

登录日志表Sys_LoginLog
中文名 字段名 注释
登录日志编号 LL_ID 登录的日志编号
登录人 UI_ID 登录人
登录时间 LL_AddDate 登录时间
登录IP LL_IP 登录的IP地址
登录状态 LL_Status 登录是否成功的标识位
登录浏览器 LL_Browser 登录浏览器
登录分辨率 LL_Resolution 登录的屏幕分辨率

还有一个就是数据字典表,我看过很多的数据库设计,类型表一个接一个,没有放在一起,还有的干脆写在注释里,有的根本就没有,这样某个程序员走了,这个字段就没人知道了,即使没走,自己也有可能时间长了忘掉,所以,见一个基础数据字典表的作用非常重要,其他的比如地区表(Sys_DicArea),汉语拼音表(Sys_DicCharacter)(用来汉字和拼音的转换)因为数据量较大,单独建表。这里介绍通用的数据字典表。

 

系统字典表Sys_Dictionary
中文名 字段名 注释
字典编号 SD_ID 字典的编号,可以直接使用此主键编码(注意删除时的关联关系)
字典类型 DY_ID 字典类型的ID,需要建立字典类型表,因为放的是所有的字典表
字典编码 SD_Code 字典编码,支持自己编码(同一类型是唯一的,一般是整数型
字典中文名称 SD_Name 字典中文名称(比如男女,比如状态,可以放在字典表里,作为查看依据)
字典备注 SD_Remarks 字典备注,字典需要一些备注信息
创建人    
创建日期    
修改人    
修改日期    

 

系统字典表类型Sys_DicType
中文名 字段名 注释
字典类型编号 DT_ID 字典的自动索引号
字典类型名称 DT_Name 字典类型的中文名称
字典的备注说明 DT_Remarks 字典使用的备注说明
字典状态 DT_Status 字典是否删除,不在使用

 

最后补充一些内容,一般设计数据库是这个样子的,但是不排除有些特殊的情形,为了数据的保密性,数据库的表名和字段名都是一些看似毫无意义的字符数字,比如Table1,Col1,但是有一个表是说明表,或者有对应的数据库文档设计。

 

补充:一些列说明了单位类型,可以在设计数据库的时候表明,比如HeightIncm, WeightInKg.这样一目了然。

 

分享到:
评论

相关推荐

    会议管理系统数据库设计文档.doc

    5 2.3 数据库逻辑设计 5 2.3.1 数据库设计命名规范 6 2.3.2 数据库表名汇总 7 2.3.3 数据库表结构设计 7 2.4 存储过程设计 12 2.5 触发器设计 12 2.6 Job设计 12 3 数据字典设计 13 引言 1 预期的读者 主要为本公司...

    数据库设计系列:数据库设计5步骤.pdf

    数据库设计系列:数据库设计 数据库设计系列:数据库设计5步骤 步骤 数据库设计5步骤 1.确定entities及relationships a)设计宏观⾏为。你⽤此数据库来做什么?⽐如,希望管理雇员的信息。 b)确定entities。对于⼀...

    数据库设计说明书模板

    数据库设计说明书 版本:V1.0 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 ...

    数据库设计规范模板.pdf

    XXX数据库设计规范模板 目 次 1 范围 2 引用文件 3 术语、定义和缩略语 3.1 术语 3.2 缩略语 4 总体要求 4.1 数据库设计总体要求 4.2 数据库编程总体要求 5 数据库设计要求 5.1 数据库字符集选择 5.2 数据库表空间...

    数据库设计指导规范.doc

    数据库设计指导规范 表和字段命名规范 表和字段命名的首字母大写,表必须要有主键,而且主键命名为Id,类型为varchar(3 6),因为在程序中我们是采用guid作为主键,注意:非主外键字段之外不得包含关键字 Id 外键...

    数据库设计规范-模板.doc

    SQL Server数据库命名规范1 SQL Server数据库命名规范 良好的命名习惯是一种美德,下面是关于数据库命名的规范: 数据库命名规范: 1. 数据库名: 1.1)用产品或项目的名字命名; 1.2)采用Pascal Case,如...

    MySQL数据库设计学习.pdf

    mysql数据库设计学习---数据库设计规范化的五个 要求 2010-10-16 16:01 27988人阅读 评论(3) 收藏 举报 数据库 mysql 程序开发 出版 存储 任务 一:表中应该避免可为空的列; 二:表不应该有重复的值或者列; 三: ...

    数据库设计参考规范.doc

    数据库设计规范化的五个要求 数据库逻辑设计是优化关系数据库的核心。而数据库设计的规范化则是这个核心的核 心。一个规范化的逻辑数据库,可以为数据库管理员优化数据库和应用程序性能打下坚 实的基础。相反,若...

    高校成绩管理数据库系统的设计与实现.doc

    基本目的 以SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语 言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应 用系统开发能力。 2. 用户需求 ...

    数据库设计规范(1).doc

    兼顾规范与效率 使用公司规定的数据库设计软件工具 命名符合公司标准和项目标准 数据库设计目标 规范性:一般符合3NF范式要求,减少冗余数据。 高效率:兼顾规范与效率,适当进行反范式化,满足应用系统的性能要求。...

    实验10--数据库设计-要求.doc

    数据库原理及应用 课程设计要求 2018.5 时间:12--14周 内容: 1.... ----------------------- 实验10--数据库设计-要求全文共2页,当前为第1页。 实验10--数据库设计-要求全文共2页,当前为第2页。

    系统数据库设计文档模板.doc

    "(内部文件,注意保管( " "文档编号 " "版 本 " " " " " " " "XXXXXX项目 " " " " " "系统数据库设计文档 " " " " " "编 写 " "校 对 " "审 核 " "批 准 " " " "中心 " "2017年4月 " 版本信息记录 "日期 "版本 "说明...

    Oracle数据库设计策略及规范.docx

    Oracle数据库设计策略及规范 设计策略及规范 1. 目的 定义Oracle数据库设计规范,作为数据库规划、设计、开发以及维护人员的技术参考资料。用以规范和指导相关人员的设计行为。 2. 概述 本文档根据Oracle数据库...

    数据库系统(四)---关系型数据库设计及E-R图.pdf

    数据库系统(四) 数据库系统(四)---关系型数据库设计及 关系型数据库设计及E-R图 图 1、关系型数据库: 关系型数据库是⼀类采⽤关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析...

    SQLServer数据库设计规范.txt

    SQLServer数据库设计规范 作者:佚名 厚朴教育来源:网络 点击数:1446 更新时间:2008-12-2 1 相关的设计规范: 1.1 采用有意义的字段名 尽可能地把字段描述的清楚些。当然,也别做过头了,比如...

    考勤系统数据库设计模板.docx

    数据库设计的基本规范 4 1.1开发规范 4 1.2命名规范 4 2.基本表及其说明 4 2.1 系统信息表 4 2.2 职工基本信息表 4 2.3 部门基本信息表 5 2.4职工考勤表 5 2.5 职工考勤统计表 5 3. E-R图 6 1.数据库设计的基本规范 ...

    《数据库开发与设计》课程设计.doc

    内容要求与时间安排 在13周至17周课余时间里,在VFP6.0这个软件平台上,每人独立完成一个信息管理 系统(即数据库应用程序)的设计,并最终形成一个脱离VFP软件可直接运行的exe文件。 题目自选,如《企业人事管理系统...

    租车系统模块与数据库设计.docx

    前篇回顾 租车信息系统数据库设计(1)中我们根据租车系统最基本的一些需求,设计出了如下表结构: 有朋友看了这个结构图后问我为什么对于订单没有设计成主从表(即分为OrderHeader,OrderDetail)。 订单的主从表...

    access数据库设计(1).doc

    数据库设计的(E-R)模型 图一 图书实体属性图 图二 供应商实体属性图 图三 采购员实体属性图 图四 订货单实体属性图 图五 图书类别实体属性图 图六 送货方式实体属性图 图七 采购订单实体属性图 图八 价目表实体...

Global site tag (gtag.js) - Google Analytics