第二课--数据库设计.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二课 数据库设计与优化设计方法:提取出系统中所有独立的对象:员工、日报、绩效、校区、学员确定每个对象的对应关系:1对多 1对1 ,多对多对象如果是多的关系,则添加为外键列,比如员工对象和绩效对象。一个员工可以有多次绩效考核,所有对员工跟绩效是一对多的关系,那么就在绩效表中添加员工的外键。可以快速的创建出符合三范式要求的表关系。(反范式在后面的数据库优化过程中进行讲解)创建表1、在powerdesigner中选择新建模型,步骤如下 2、添加表对象3、默认情况下,PWD没有字段注释说明列,通过下面方法设置注释4、添加表名添加主键添加自增属性,在列中右键设置自增歩长—从100,每次自增1,注意逗号分隔设置默认值5、最终表设计如图6、生成SQL脚本7、生成数据字典数据库优化反范式场景:在三范式要求中不应该存在传递依赖关系。比如日报表中员工编号和校区编号存在传递依赖关系这样就符合三范式的要求。如果严格按照三范式的要求,就需要在报表中去掉校区编号,关系图如下:但是这样会出现性能消耗问题,根据需求每个校区只能看自己的员工日报,按照三范式的设计,在实现这个功能的时候由于日报表中没有校区编号,从而不知道日报内容属于哪个校区,就只能通过员工编号去查找。整个查询分为如下几步:在员工表中去查找属于该校区的员工在查询出来的员工id到日报中查询出对应员工的日报如果不使用三范式,直接在日报表中添加一个校区标号,该业务步骤如下:直接在日报表中刷选出当前校区的编号,刷选出来的信息就是该校区的所有人员日报。特别是这种数据量比较的大表,采用这种反范式的方式可以提示整个的查询性能。创建索引原则查询条件频繁的字段,比如日期、学员编号等主键索引(数据库自动完成)范围字段,比如日期字段关联字段,比如外键用来排序的字段,比如招生人数、缴费人数字段不适合索引列重复内容较多的字段。比如性别、姓名字段字数较多且长度与等的字段。比如考核内容字段综合上述,索引字段如下(不包含集聚索引):表名字段名说明TB_Employeesys员工表t_schoolsid外键,关联表t_employeeType员工类型经常查询条件TB_Report日报表t_employeeCode外键,关联表t_Atypecount排序字段t_QQactivation排序字段t_ReportCreateTime范围查询条件TB_YearReportt_StudentSum排序字段t_PaySum排序字段t_yearCreateTime范围查询条件TB_studentsyst_employeeCode外键t_studentCreateTime范围查询条件TB_YearDatat_employeeCode外键t_realStudent范围查询条件t_YearCreateTime范围查询条件TB_KPIItemt_YESorNO经常查询条件TB_EmployeeKPIt_KPIItem外键t_employeeCode外键t_schoolsid外键添加索引方法通过上面步骤完成所有索引的创建创建分区表学员名单和日报是查询就为频繁的业务之一,而且每次查询多为显示最近一段时间的数据,根据业务特效这两张表是只增加不减少,几年过去后数据量会非常的庞大,查询超时的可能性会大大增加,所有需要对这两张表做分表处理:根据时间段来横向划分表,将一张大表根据不同的日期分成多张表出来。这样当查询某一个时间段数据的时候,表自身的体积将减少很多,从而提供真个的运行效率。步骤如下:将一年的数据分分成12个部分,每个部分存放一个月的数据。那么先要创建12个文件组,用来存放数据2、创建分区函数,指定分区的时间点3、创建分区方案,指定不同时间点存放在哪个文件组中创建分区可以出数据已经自动到了各种的区域,PRIMARY占一个分区,所以从2开始读写分离没有多的服务器所以,采用发布和订阅的方式实现数据库读写分离1、确定主数据库确定从数据库测试备份机制

文档评论(0)

js1180 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档