[转载]表的设计命名的十个注意点

1.表名一般以【模块名称_具体表名】来实现,同一个模块的前缀是一样的。

2.表名称不应该取得太长(一般不超过三个英文单词,总的长度不要超过32个字符)。
 
3.不使用tab或tb作为表前缀(本来就是一个表,为什么还要说明)。
 
4.一些作为多对多连接的表,可以使用两个表的前缀作为表名:如:用户登录表User_Login,用户分组表User_GroupInfo,这两个表建立多对多关系的表名为:User_Group_Relation(关系统一用Relation)
 
5.当系统中有一些少量的,重复出现的值时,使用字典表来节约存储空间和优化查询。如地区、系统中用户类型的代号等。这类值不会在程序的运行期变化,但是需要存储在数据库中。一般数据库中,都有一个数据字典表,用来保存系统所用到的基础数据,大型的字段表如省份城市区域的字典表,统一以Dictionary_作为前缀。
     
6. 与字段有关,默认的一些特殊字段, 很多表中, 比如一些业务处理表中,除了添加生成的自动编号ID(一般作为主键用),该记录创建的时间CreateDate(创建时间),该记录的创建人CreatBy(注意这里,没UI_ID(用户信息表User_Info的主键UI_ID),因为还有修改人),最后修改人LastEditBy,最后修改时间LastEditDate。(这些可以直接使用中文字符,而不使用编码,在查询不多的情况下)同时有的时候需要注意,删除的时候并不真的删除该记录,而是添加一个标识位,比如XX_DeleteStaus删除状态。1是有效的,0则是无效的。
 
7.在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。
 
8.数据库中应建立这样一个表,就是数据库本身的字段信息,表的说明,也就是数据库设计文档的一个表,方便查询使用,有什么不明的可以直接从数据库查询,数据库文档丢失,注释丢失,都可以重新起作用。
 
9.每个表都应该有一个主键,这个主键最好是数字,而且是递增的,有很多表的主键用32位字符编码,这样做的目的更多的是从安全考虑的。
     
10.操作日志表,登录日志表,这是数据库中必备的两个表,这个记录也需要做进一步的保存。这个有两种情形,一是具体到单个字段的操作日志,二是整个表的操作日志。

常见的三个表具体说明:

操作日志表Sys_OperateLog(通用版)

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

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

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

登录日志表Sys_LoginLog
中文名字段名注释
登录日志编号LL_ID登录的日志编号
登录人UI_ID登录人
登录时间LL_AddDate登录时间
登录IPLL_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,但是有一个表是说明表,或者有对应的数据库文档设计。

转载于:https://www.cnblogs.com/yurukai/archive/2010/05/06/1729151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值