1.表名一般以【模块名称_具体表名】来实现,同一个模块的前缀是一样的。(Oracle大小写敏感,在SQL中可以不用_,因为可以用大小写一起的写法。这也是可以的) 2.表名称不应该取得太长(一般不超过三个英文单词,不推荐使用中文拼音,总的长度不要超过30个

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.这样一目了然。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql用户表怎么命名_数据库表的命名规范相关推荐

  1. mysql 表名 复数_数据库表命名,复数或单数

    这个问题要求进行宗教战争. 我无疑应该是复数,因为- >表是行的集合. > sql语法变得更加自然 – SELECT * FROM Customers而不是SELECT * FROM Cu ...

  2. java mysql 表关系分析_数据库表的关系

    表与表之间一般存在三种关系,即一对一,一对多,多对多关系. 下面分别就三种关系讲解数据库相关设计的思路和思考过程: (1)一对一关系 例如,下面的一张表,保存了人的相关信息,有男有女,要求查处所有的夫 ...

  3. mysql表设计原子性_数据库表设计-原子性

    好的数据结构会影响速度.好的数据库表设计会影响数据库操作效率.特别是数据多的时候,如果表的结构不好的话操作的时候条件(where后的内容)会变的非常复杂. SQL是关系数据库中用到的一种语言.所以,为 ...

  4. mysql逻辑删除的问题_数据库表涉及-逻辑删除

    对于只进行逻辑删除的表,如 CREATE TABLE `pics` ( `pid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `aid` bigint( ...

  5. mysql表增加一行_数据库表增加一行数据

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. mysql 表名 复数_数据库表名,应该用复数还是单数

    用单数形式更佳,理由如下: 1.概念直观. 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋.但无论里面有0,1,百万个苹果,它依然是个袋子.表也是如此,表明需要描述清楚,表里面包含的对象,而非有多 ...

  7. mysql库表散列_数据库表--hash clustered table

    Hash clustered table与索引聚簇表非常相似,只有一个主要区别:聚簇键索引被一个hash函数所取代,表中的数据就是索引.所以没有物理索引 hash clustered table也有副 ...

  8. mysql数据库表类型设置_mysql数据库表的类型介绍

    目录 前言 之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好) 那么现在让我们来讲讲 """ 1.数据库与表的剩余操作 编码配置.引擎介绍 2.数据库字段的 ...

  9. mysql视图改造实体表_数据库视图改了对基表

    数据库必知词汇:数据库视图 视图是从一个或几个基本表(或视图)中导出的虚拟的表.在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据.视图与表(有时为与视图区别,也称表为基本表--Base Ta ...

  10. oracle删除表的一个字段的数据库,学会Oracle数据库删除表字段和Oracle数据库表增加字段方法...

    Oracle数据库添加字段的语法:alter table tablename add (column datatype [default  value][null/not null],-.); Ora ...

最新文章

  1. JavaScript字符串数组拼接的性能测试及优化方法
  2. card样式 layui_layui样式修改
  3. Interview QA - 房间里有三盏灯,屋里有三个开关分别控制这三盏灯。如何只进入房间一次就知道哪一个开关控制哪一盏灯?
  4. ie浏览器自带小眼睛是什么用的_茅台酒自带的小杯子有什么用?是用来喝酒的嘛?...
  5. 洛谷——P1226 取余运算||快速幂
  6. ajax请求拿到多条数据拼接显示在页面中
  7. 1389. 按既定顺序创建目标数组
  8. RabbitMq(八) SpringBoot整合RabbitMQ 生产者代码实现
  9. 为什么越来越多的人喜欢旅游?
  10. 数学类网站、代码(Matlab Python R)、编程站点
  11. Android edittext 属性inputtype
  12. 使用bat脚本创建快捷方式
  13. 深度学习实战(十一)——多标签分类(基于Keras)
  14. 行为经济学_为什么所有数据科学家都应该了解行为经济学
  15. PV 和 UV 的区别
  16. 【HTML学习笔记】link标签中的href路径
  17. 【数据中台】数据中台架构搭建百科全书
  18. 《Effective Modern C++》Item 6: Use the explicitly typed initializer idiom when auto deduces undesired
  19. 从一台 Windows 10 上共享文件夹到Docker中的Volume卷
  20. 《路人甲》 很适合喜欢动脑的人!

热门文章

  1. Win7桌面设置便签和备忘录的具体操作方法
  2. 计算机进入局域网共享,win10打开局域网共享的四个步骤——亲测有效
  3. 哈希表---开链法解决哈希冲突
  4. python制作简单动画_如何使用python制作简单的动画?
  5. ETL开发工具KETTLE使用教程
  6. php alert弹出框位置,jQuery_基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果),原理很简单: 获取当前屏幕( - phpStudy...
  7. java+redis实现腾讯云短信SDK3.0验证+过期时间验证
  8. 音阶频率对照表_音符频率对应表
  9. matlab线性同余发生器,线性同余法生成伪随机数
  10. bt协议详解 DHT篇(上)