web mysql 界面表命名规范_MySql数据库表字段命名及设计规范

1.设计原则

1) 标准化和规范化web

数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但 Third Normal Form(3NF)一般被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来讲,遵照3NF 标准的数据库的表设计原 则是:“One Fact in One Place”即某个表只包括其自己基本的属性,当不是它们自己所具备的属性时需进行分解。表之间的关系经过外键 相链接。它具备如下特色:有一组表专门存放经过键链接起来的关联数据。sql

举例:某个存放客户及其有关定单的3NF 数据库就可能有两个 表:Customer和Order。Order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer表里包含该客户信息的那 一行。数据库

事实上,为了效率的缘故,对表不进行标准化有时也是必要的。服务器

2) 数据驱动数据库设计

采用数据驱动而非硬编码的方式,许多策略变动和 维护都会方便得多,大大加强系统的灵活性和扩展性。模块化

举例,假如用户界面要访问外部数据源(文件、XML 文档、其余数据库等),不妨把相应的链接 和路径信息存储在用户界面支持表里。还有,若是用户界面执行工做流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工做流的数据也能够存放在 数据库里。角色权限管理也能够经过数据驱动来完成。事实上,若是过程是数据驱动的,你就能够把至关大的责任推给用户,由用户来维护本身的工做流过程。函数

3) 考 虑各类变化工具

在设计数据库的时候考虑到哪些数据字段未来可能会发生变动。性能

举例,姓氏就是如此(注意是西方人的姓氏,好比女性结婚后从夫姓 等)。因此,在创建系统存储客户信息时,在单独的一个数据表里存储姓氏字段,并且还附加起始日和终止日等字段,这样就能够跟踪这一数据条目的变化。测试

2. 数据库涉及字符规范

采用26个英文字母(区分大小写)和0-9这十个天然数,加上下划线'_'组成,共63个字符.不能出现其余字符(注 释除外).

注意事项:

1) 以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).

2) 数据 对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.

3) 当心保留词,要保证你的字段名没有和保留词、数据 库系统或者经常使用访问方法冲突

5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候必定要保证一致性.假如数据类型在一个表里是整 数,那在另外一个表里可就别变成字符型了.

3.数据库命名规范

数据库,数据表一概使用前缀

正式数 据库名使用小写英文以及下划线组成,尽可能说明是那个应用或者系统在使用的.好比:

web_19floor_net

web_car

备 份数据库名使用正式库名加上备份时间组成,如:

web_19floor_net_20070403

web_car_20070403

4. 数据库表命名规范

数据表名使用小写英文以及下划线组成,尽可能说明是那个应用或者系统在使用的.

相关应用的数据表使用同一前缀,如 论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称通常不超过5字

好比:

web_user

web_group

supe_userspace

备 份数据表名使用正式表名加上备份时间组成,如:

web_user_20070403

web_group_20070403

supe_userspace_20070403

5. 字段命名规范

字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.

如 web_user 表的字 段:

userId

userName

userPassword

表与表之间的相关联字段要用统一名称,

如 web_user 表 里面的 userId 和 web_group 表里面的 userId 相对应

6.字段类型规范

规则:用尽可能少的存储空间来存 数一个字段的数据.

好比能用int的就不用char或者varchar

能用tinyint的就不用int

能用 varchar(20)的就不用varchar(255)

时间戳字段尽可能用int型,如created:表示从 '1970-01-01 08:00:00'开始的int秒数,采用英文单词的过去式;gmtCreated:表示datetime类型的时间,即形如 '1980-01-01 00:00:00'的时间串,Java中对应的类型为Timestamp

7.数据库设计文档规范

所 有数据库设计要写成文档,文档以模块化形式表达.大体格式以下:

'-------------------------------------------

' 表 名: web_user

' 做者: Aeolus(傻鱼)

' 日期: 2007-04-11

' 版 本: 1.0

' 描述: 保存用户资料

' 具体内容:

' UserID int,自动增量 用户 代码

' UserName char(12) 用户名字

' ......

'--------------------------------------------

8. 索引使用原则:

1) 逻辑主键使用惟一的成组索引,对系统键(做为存储过程)采用惟一的非成组索引,对任何外键列采用非成组索引.考虑数 据库的空间有多大,表如何进行访问,还有这些访问是否主要用做读写.

2) 大多数数据库都索引自动建立的主键字段,可是可别忘了索引外键,它们也 是常用的键,好比运行查询显示主表和全部关联表的某条记录就用得上.

3) 不要索引blob/text等字段,不要索引大型字段(有不少字 符),这样做会让索引占用太多的存储空间.

4) 不要索引经常使用的小型表

不要为小型数据表设置任何键,假如它们常常有插入和删除操做就更别 这样做了.对这些插入和删除操做的索引维护可能比扫描表空间消耗更多的时间.

9.sql语句规范

全部sql关键词所有大 写,好比SELECT,UPDATE,FROM,ORDER,BY等,全部的表名和库名都要用``包含

如:

SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = 'aeolus';

10.其余设计技巧

1) 避免使用触发器

触发器的功能一般能够用其余方式实现.在调试程序时触发器可能成为干扰.假如你确实须要采用触发 器,你最好集中对它文档化.

2) 使用经常使用英语(或者其余任何语言)而不要使用编码或者拼音首字母缩写

在建立下拉菜单、列表、报表时最好 按照英语名排序.假如须要编码或者拼音首字母缩写,能够在旁边附上用户知道的英语.

3) 保存经常使用信息

让一个表专门存放通常数据库信息非 常有用.在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息.这样能够实现一种简单机制跟踪数据库,当客 户抱怨他们的数据库没有达到但愿的要求而与你联系时,这样作对非客户机/服务器环境特别有用.

4) 包含版本机制

在数据库中引入版本控制 机制来肯定使用中的数据库的版本.时间一长,用户的需求老是会改变的.最终可能会要求修改数据库结构.把版本信息直接存放到数据库中更为方便.

5) 编 制文档

对全部的快捷方式、命名规范、限制和函数都要编制文档.

采用给表、列、触发器等加注释的数据库工具.对开发、支持和跟踪修改很是有 用.

对数据库文档化,或者在数据库自身的内部或者单独创建文档.这样,当过了一年多时间后再回过头来作第2 个版本,犯错的机会将大大减小。

6) 测 试、测试、反复测试

创建或者修订数据库以后,必须用用户新输入的数据测试数据字段.最重要的是,让用户进行测试而且同用户一道保证选择的数据类型 知足商业要求.测试须要在把新数据库投入实际服务以前完成。

7) 检查设计

在开发期间检查数据库设计的经常使用技术是经过其所支持的应用程序 原型检查数据库.换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型而且查看如何取出数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过代理上网 固定ip_浅析局部代理IP与全局代理IP的使用说明

经常有人问,如何设置局部代理IP,如何设置全局代理IP,今天我们一起来看看。何谓局部代理IP,顾名思义,改变局部的IP,不影响其他程序软件运行的使用IP;所谓全局代理IP,就是改变整个客户…

如何检查私钥和公钥是否配对_如何检查家具是否有臭虫

如果您购买了二手家具,或者家具使用好多年了,那么由于家庭环境等问题,难免会出现臭虫!臭虫可以通过许多不同的方式进入您的房屋,但是最常见的方法之一是您的二手家具。关于臭虫首先,让我们从臭虫入门。这些…

教你如何快速入门python_如何快速入门python

匿名用户1级2018-10-10 回答Python入门到精通学习书籍推荐!1、Python基础教程(第2版 修订版)《Python基础教程(第2版修订版)》包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能&…

利用expect安装mysql_linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解

一、遇到的问题我们使用过mysqldump都知道,使用该命令后,需要我们手动输入 mysql的密码,那么我们就不能够直接在crontab中使用mysqldump实现周期备份。其实我们可以使用expect脚本自动输入密码,从而实现真正的周期备份。如果你不知…

数据结构实验之图论九:最小生成树_初高中数学竞赛训练----图论初步2

例题中有2019年罗马尼亚大师赛第3试题树树:一个连通图,如果没有一个环,则叫树。森林:若干个独立的树形成一个森林。链:一个特殊的树是节点中,除去两个节点的度为1,其它均为2,叫做链。…

可以结束一个循环的关键字是python_第33 p,for遍历,循环取值最方便

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第33篇文章,第二阶段的课程:Python基础知识:Python中的控制语句之for遍历。学习本课程,建议先看一遍:【计算机基础知识】课程。一、用for能…

在每个运行中运行多个查询_Spring Data JPA的运行原理及几种查询方式

Spring Data JPA的运行原理:PersistenceContext(name"entityManagerFactory") private EntityManager em; Test public void test1(){ //org.springframework.data.jpa.repository.support.SimpleJpaRepositor yfba8bf //System.out.println(this.u…

467python教程_Magnus Lie Hetland的《Python基础教程(第3版)》自学笔记(持续更新中)...

转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注。Python基础教程.jpg快速上手:基础知识交互式解释器在Python交互式解释器的提示符>>>后面输入help()可以获取指南,在IDLE中,还可…

java 获取所有带指定注解的类名_SXT DAY023 反射和注解

1. 反射机制介绍_Class对象获取反射机制是 Java 的动态性之一 动态语言:在程序运行时,可以改变程序的结构或变量的 类型。反射机制的常见作用动态的加载类、动态的获取类的信息(属性,方法,构造 器) 动态构造对象 动态调用类和对象的任意方法、…

tomcat勾连mysql_tomcat9.0启动脚本startup.bat的分析

1、 Apache Tomcat的下载和安装从Apache官网https://tomcat.apache.org/可以下载各种版本的tomcat软件,下载的文件格式可以是zip/tar.gz/exe形式的。如下图所示,在64位windows中使用tomcat,我们可以下载"64-bit Windows.zip",直接解…

安卓能硬改的手机机型_【每日新闻】小米11部分镜头参数爆料;华为重新采购手机零部件 重启4G手机生产...

数据铸造影响力关注每日行业热点资讯,掌握业界动态趋势,以下是今天的精彩内容:1、小米11部分镜头参数爆料:超大底50MP主摄,长焦达12MP或48MP2、华为重新采购手机零部件 重启4G手机生产1、小米11部分镜头参数爆料&#…

kafka集群为什么需要三个节点_大白话带你认识 Kafka

前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实…

mysql对日期的操作_MySql对日期的操作

1、计算俩个日期之间所差的天数select datediff(2018-09-18,2018-09-01)2、计算日期是这周的星期几select dayofweek(2018-09-18)1.因为外国一般都是把星期天认为是一周的开始,所以用这种方法一般都得减去一天才是这周的星期几select date_format(2018-09-17,"…

sql移动加权计算利润_计算机视觉中的半监督学习

作者:Amit Chaudhary编译:ronghuaiyang导读图解半监督的各种方法的关键思想。计算机视觉的半监督学习方法在过去几年得到了快速发展。目前最先进的方法是在结构和损失函数方面对之前的工作进行了简化,以及引入了通过混合不同方案的混合方法。…

.net 启动mysql数据库连接_[ASP.net教程]mysql数据库连接方式(.net)

[ASP.net教程]mysql数据库连接方式(.net)0 2014-07-17 18:01:001.通过ado.net连接(数据库连接串中为中文貌似无法使用)需要添加MySql.Data.dll(可通过安装mysql-connector-net-6.8.3.mis获得)引用MySql.Data.dll调用方式string connectionString “serverlocalhost;port3306;da…

overflowhidden把内容遮住了怎么办_图片有水印怎么办?不用PS,有这4招就够了!...

图片是我们在做 PPT 时经常会使用到的高频元素。往往会在搜索引擎中搜到很多带有水印的图片,怎么办呢?固然 PS 等软件去水印很给力,但是对于连 PPT 都还没有用得很熟悉的同学,让他们再去下载安装 Photoshop 软件,仅仅只…

mysql开窗函数over_oracle分析函数技术详解(配上开窗函数over())

一、Oracle分析函数入门 分析函数是什么? 分析函数是Oracle专门用于 解决复杂报表统计需求 的功能强大的函数, 它可以在数据中进行分组然后计算基于组的某种统计 ,并且每一组的每一行都可以返回一个统计。 分析函数和聚合函数的不同之处是什么…

传递给系统调用的数据区域太小怎么解决_一口气说出“分布式追踪系统”原理!...

“ 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。图片来自 Pexels这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用&#xf…

combinations java_[LeetCode][Java] Combinations

题目:Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.For example, If n 4 and k 2, a solution is:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]题意:给定两个整数 n 和 k,返回1 ...n中k个数字的所有的组合。…

java将对象 缓存_ehcache java 对象缓存怎么实现

展开全部1.技术背景:系统缓存是32313133353236313431303231363533e4b893e5b19e31333337396236位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为减少应用程序对物理数据源访问的次数,从而提高应用程序的运行…