数据库的开发对于后台编程程序员来说是必备能力之一了,而今天我们就一起来了解一下,关于数据库开发的设计规范都有哪些类型,沙河北大青鸟希望通过对本文的阅读,大家对于数据库开发有更多的了解。
一、数据库命令规范
所有数据库对象名称必须使用小写字母并用下划线分割
所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)
数据库对象的命名要能做到见名识意,并且后不要超过32个字符
临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀
所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)
二、数据库基本设计规范
1、所有表必须使用Innodb存储引擎
没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql55之前默认使用Myisam,56以后默认的为Innodb)Innodb支持事务,支持行级锁,更好的恢复性,高并发下性能更好
2、数据库和表的字符集统一使用UTF8
兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效
3、所有表和字段都需要添加注释
使用comment从句添加表和列的备注从一开始就进行数据字典的维护
4、尽量控制单表数据量的大小,建议控制在500万以内
500万并不是MySQL数据库的限制,过大会造成修改表结构,备份,恢复都会有很大的问题
可以用历史数据归档(应用于日志数据),分库分表(应用于业务数据)等手段来控制数据量大小
5、谨慎使用MySQL分区表
分区表在物理上表现为多个文件,在逻辑上表现为一个表谨慎选择分区键,跨分区查询效率可能更低建议采用物理分表的方式管理大数据
6、尽量做到冷热数据分离,减小表的宽度
MySQL限制每个表多存储4096列,并且每一行数据的大小不能超过65535字节减少磁盘IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大,也会消耗更多的IO)更有效的利用缓存,避免读入无用的冷数据经常一起使用的列放到一个表中(避免更多的关联 *** 作)
按照规范的设计方法,一个完整的数据库设计一般分为需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库的实施、数据库运行与维护六个阶段:各阶段的任务如下:
1、需求分析:分析用户的需求,包括数据、功能和性能需求;
2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4、数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5、数据库的实施:包括编程、测试和试运行;
6、数据库运行与维护:系统的运行与数据库的日常维护。:数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种\"反复探寻,逐步求精\"的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
个人想法:
首先你要有个人员表
人员表中的字段 、
id name departmentid 职位 权限 。。。。
departmentid就是所属部门,再建立个部门表做关联
职位不必说 就是经理 老总 普通员工 等
权限是个用来设置员工特性的 比如说你要达到的目的
其他某一个具体的员工A(不属于销售部的)
那么这个员工权限这个字段可以设为1 其他为0 当然 你根据实际情况给这个字段取名 不一定叫权限。
然后发布公告 。其实发布公告就是这段信息给那些具有相关特权的人看
那么问题就在于查询这些有‘特权’的人
select id from 员工表 where departmentid= or 职位='经理' or 权限=1;
这个系统最终实现的主要功能如下:
员工基本信息部分:主要完成对员工基本信息的添加、修改、删除、查询等管理。
员工档案信息部分:主要完成对员工档案信息的添加、修改、删除、查询等管理。
员工部门信息部分:主要完成对对员工所属部门的添加、修改、删除、查询等管理。
员工工资信息部分:主要完成对员工工资信息的添加、修改、删除、查询等管理。
员工保险信息部分:主要完成对员工保障信息的添加、修改、删除、查询等管理。
员工合同信息部分:主要完成员工与企业签订合同的一系列信息的添加、修改、删除、查询管理。
员工配偶信息(工号,配偶姓名, 出生年月,工作单位,电话)的工号参照员工基本信息的工号。
员工学历信息(工号,员工姓名,学历,毕业学校,专业,毕业时间,外语情况)的工号参照员工基本信息的工号。
企业工作岗位信息(工号,学历,部门,职位)的工号参照员工基本信息的工号,部门参照企业部门信息的部门
员工基本信息与员工配偶信息建立关于工号的父子关系。
员工基本信息与员工学历信息建立关于工号的父子关系。
员工基本信息与企业工作岗位信息建立关于工号的父子关系
。 企业工作岗位信息与员工基本信息建立关于工号的父子关系。
企业工作岗位信息与企业部门信息建立关于部门的父子关系。
采纳吧
部门信息表tb_department:
ID 部门编号 自动编号 主键
部门名称de_name 文本
部门员工数de_num 数字
职工表tb_employee:
ID 员工编号 自动编号 主键
员工姓名em_name 文本
员工性别em_sex 文本
部门编号de_id 数字
员工出生日期em_data 日期/时间
员工身份z号em_virify 文本
员工职称em_call 文本
基本工资表tb_pay:
ID 工资编号 自动编号 主键
员工编号em_id 数字
工资结算日期pa_data 日期/时间
工资数pa_num 数字
注意事项:
1、每一个表都要有一个ID自动编号的自动增长列,作为主键。
2、有一些字段的类型,例如货币等,尽量能用文本和数字就用文本和数字。
3、注意表和字段的命名。
4、字段可能不全,自行添加。
5、员工表的部门编号和部门表的部门编号,员工表的员工编号和工资表的员工编号,虽然可以形成外键关系,但是一般不建议用外键关联,否则插入数据的一致性会受影响。
你说的那个选择题,不明白你是什么意思。。。。
以上就是关于数据库设计需要遵守的设计规范全部的内容,包括:数据库设计需要遵守的设计规范、数据库的设计一般经过哪几个阶段、一条公告同时发给部门、职务、个人 这样的数据库怎样设计谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)