
大数据量的数据库表设计技巧
即使是一个非常简单的数据库应用系统,它的数据量增加到一定程度也会引起发一系列问题。如果在设计数据库的时候,就提前考虑这些问题,可以避免由于系统反映迟缓而引起的用户抱怨。
技巧1:尽量不要使用代码。比如性别这个字段常见的做法:1代表男,0代表女。这样的做法意味着每一次查询都需要关联代码表。
技巧2:历史数据中所有字段与业务表不要有依赖关系。如保存打印发票的时候,不要只保留单位代码,而应当把单位名称也保存下来。
技巧3:使用中间表。比如职工工资,可以把每一位职工工资的合计保存在一张中间表中,当职工某一工资项目发生变化的时候,同时对中间表的数据做相应更新。
技巧4:使用统计表。需要经常使用的统计数据,生成之后可以用专门的表来保存。
技巧5:分批保存历史数据。历史数据可以分段保存,比如2003年的历史数据保存在 《2003表名》中,而2004年的历史数据则保存在《2004表名》中。
技巧6:把不常用的数据从业务表中移到历史表。比如职工档案表,当某一职工离开公司以后,应该把他的职工档案表中的信息移动到《离职职工档案表》中。
1、经常查询的和不常用的分开几个表,也就是横向切分
2、把不同类型的分成几个表,纵向切分
3、常用联接的建索引
4、服务器放几个硬盘,把数据、日志、索引分盘存放,这样可以提高IO吞吐率
5、用优化器,优化你的查询
6、考虑冗余,这样可以减少连接
7、可以考虑建立统计表,就是实时生成总计表,这样可以避免每次查询都统计一次
8、用极量数据测试一下数据
速度,影响它的因数太多了,且数据量越大越明显。
1、存储将硬盘分成NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你可以采用多数据库文件,这样可以将存取负载分散到多个物理硬盘或磁盘阵列上。
2、tempdbtempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID0上,这样它的性能最高,不要对它设置最大值让它自动增长
3、日志文件日志文件也应该和数据文件分开在不同的理硬盘或磁盘阵列上,这样也可以提高硬盘I/O性能。
4、分区视图就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,如果你数据库不是访问特别大不建议使用。
5、簇索引你的表一定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽量减少对它的updaet,应为这可以使它物理不连续。
6、非簇索引非簇索引与物理顺序无关,设计它时必须有高度的可选择性,可以提高查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,如果你愿意用空间和修改时间换取速度可以考虑。
7、索引视图如果在视图上建立索引,那视图的结果集就会被存储起来,对与特定的查询性能可以提高很多,但同样对update语句时它也会严重减低性能,一般用在数据相对稳定的数据仓库中。
8、维护索引你在将索引建好后,定期维护是很重要的,用dbccshowcontig来观察页密度、扫描密度等等,及时用dbccindexdefrag来整理表或视图的索引,在必要的时候用dbccdbreindex来重建索引可以受到良好的效果。
不论你是用几个表1、2、3点都可以提高一定的性能,5、6、8点你是必须做的,至于4、7点看你的需求,我个人是不建议的。
数据库设计的基本步骤:
1、系统需求分析与设计。
2、概念结构分析与设计。
3、逻辑结构分析与设计。
4、物理结构分析与设计。
5、系统实施。
6、系统维护。
扩展资料:
数据库设计技巧:
1、原始文件与实体的关系
它可以是一对一,一对多,多对多的关系。一般来说,它们是一对一的关系:一个原始文档只对应于一个实体。在特殊情况下,它们可以是一对多或多对一关系,即一个原始文档对应于多个实体,或者多个原始文档对应于一个实体。
这里的实体可以理解为基本表。在对应关系明确后,对输入接口的设计非常有利。
2、主键和外键
一般来说,实体不能既没有主键也没有外键。在E-R图中,叶中的实体可以定义主键或不定义主键(因为它没有子代),但它必须有外键(因为它有父项)。
主键和外键的设计在全局数据库的设计中起着重要的作用。当全球数据库的设计完成后,一位美国数据库设计专家说:“钥匙无处不在,只有钥匙。”。这是他数据库设计的经验,也体现了他对信息系统核心(数据模型)高度抽象的理念。
因为:主键是一个高度抽象的实体。主键和外键的配对表示实体之间的连接。
3、基本表的属性
基本表不同于中间表和临时表,因为它具有以下四个特点:
原子性。基本表中的字段不可分解。
原始主义。基本表中的记录是原始数据(基本数据)的记录。
演绎的。所有输出数据都可以从基本表和代码表中的数据导出。
稳定。基本表的结构比较稳定,表中的记录要长期保存。
在了解基本表的性质之后,在设计数据库时,可以将基本表与中间表和临时表区分开来。
来源:百度百科-数据库设计
广州璐华科技有限公司
推荐一款不错的人力资源管理软件,供你参考:
璐华RuvarHRM人力资源管理系统解决方案
RuvarHRM人力资源管理系统,汇集了众多成功企业先进的人力资源管理理念、人力资源管理实践、人力资源信息化系统建设的宝贵经验,以先进的信息技术,实现对企业人力资源信息的高度集成化管理,是适合中国企业使用的人力资源管理解决方案,为现代企业的成长与发展提供了先进、科学、务实的人力资源管理模式。
RuvarHRM采用基于IE浏览器的 B/S 结构,以人员管理、考勤管理、薪资管理、招聘管理、培训管理、合同管理、社保福利、绩效考核、报表中心为核心功能模块,是企业领导、HR经理和员工全员参与的,可多层次管理的集团版eHR系统。
1.岗位规划
岗位规划的目的是完善组织机构与岗位信息,企业可根据自身实际需求,建立规范有效的组织机构与岗位解决方案。
● 提供多种层次组织结构设计模式,根据各企业架构特点提供最合适的解决方案。
● 实现组织机构、编制管理、岗位管理、人员信息的协同,可灵活调整和管理企业各部门机构、岗位职级、岗位编制等信息。
● 可灵活定义各机构之间、岗位之间的上下级关系,并根据组织关系自动生成组织架构、岗位架构图,形象呈现企业组织架构、岗位架构之间的关系。
● 支持上传岗位发展图,让各个员工了解自身在企业的发展方向。
● 支持岗位信息活灵查询与导出功能。
● 可实现机构、部门的合拼,避免批量员工信息要重新输入。
● 支持组织信息统计分析、组织报表管理。
● 支持岗位信息与人员管理、考勤管理、薪资管理、招聘管理、培训管理、保险福利、合同管理、绩效考核、劳保用品等功能模块的数据关联。
2、人员管理
建立人员信息档案,管理各类人员基本信息和变动信息,实现人员信息方便快捷的统计和查询,生成各类人员管理台帐。
● 可自定义增加员工资料属性(如自定义字段、子集),完整记录员工的相关信息。
● 可批量导入人员基本信息档案。
● 通过身份z计算个人出生年月与年龄。
● 支持批量数据更新。
● 员工生日、试用期满、证照到期,退休时间等自动提醒。
● 支持人员变动 *** 作,如入职、试用、延长试用,转正、调岗、薪资变动、离职,实现对员工从入职到离职的整个过程的信息化管理。
● 支持员工自己填写提交离职申请表,人性化管理离职 *** 作过程。
● 支持员工离职程序在线流程化处理,自定义离职审查表。
● 支持员工从离职档案库中复职。
● 提供强大的定位查询及模糊查询功能,能快速方便查找任意的相关信息,实现以EXCEL表格格式导出相关信息功能。
● 提供各类统计报表,如:人员档案的报表、人员结构分析报表、部门分类统计报表、月度人数统计报表、年度人数统计报表等。
● 支持用户自由定制多种不同形式的统计报表。
3、考勤管理
管理系统考勤信息,根据考勤班次与打卡时间、请假、加班、出差记录,生成员工出勤报表,并为薪资计算提供相关数据, 使考勤数据与薪资计算直接挂钩。
● 支持多种班次自定义方式,提供夜班和跨天设置,实现不同班次不同考勤计算方法。
● 可单独或批量设置企业每个部门或每位员工的考勤排班,灵活设置个人调班,实现机动灵活考勤模式。
● 灵活设置非考勤人员,非常考勤人员不计入考勤统计报表。
● 支持多种格式(如TXT格式,EXCEL格式)的考勤数据导入。
● 根据班次与打卡时间自动生成考勤日、月报表,自动绑定请假、出差、调休时间来对比打卡时间,生成考勤报表。
● 支持对漏打卡情况进行手工补登数据。
● 支持请假、加班、出差、调休等考勤业务在线申请及审批管理。
● 支持年假的天数自动计算及休假规则设置。
● 支持加班换算计算,如:周末加班、节假日加班,可以换算成平时加班的小时数,这样方便薪酬计算读取统一数据。
● 提供多种考勤日报、月报、年报以及员工休假报表,可按员工或部门自动统计出勤、迟到、早退、请假、出差、加班等数据。
● 支持考勤数据与薪资数据对接,实现考勤薪资准确与灵活计算。
4、薪资管理
管理薪资信息,实现对员工进行薪资帐套划分、工资计算及审核发放,生成银行报盘及相关工资统计报表。
● 支持建立个性化的薪酬体系,自定义工资帐套、工资项目,每个工资项目可设置计算公式。
● 支持工资多次发放功能,每次发放可不同的工资发放人。
● 支持国家标准扣税方法与个性区间扣税方法,灵活管理扣税方式。
● 与考勤系统自动链接,可自动调用迟到、早退、旷工、加班、休假等数据进行工资项目计算。
● 可自动调用保险福利、绩效考核等数据进行相关工资项目计算。
● 支持导入EXCEL格式的外部数据进行工资项目计算。
● 人员离职或调岗后,仍可以按原来的薪酬体系进行工资发放。
● 支持工资单格式自定义功能,适应打印不同格式工资单的需要。
● 支持与银行自动转账系统相容的数据格式输出,方便向银行报盘。
● 提供完善的薪资统计分析功能,生成不同格式的薪资明细报表和统计报表,为制定薪资制度与调整薪资结构提供依据。
5、招聘管理
管理企业人员招聘从需求计划至面试录用的全过程,建立企业人才库,优化人才资源配置。
● 支持各部门提交招聘需求,招聘需求可以进行多层次审批。
● 审批通过的招聘需求可以直接转为招聘计划。
● 提供外部招聘、内部招聘、校园招聘等招聘模式。
● 可建立人才信息库,并对人才信息进行分类。
● 支持应聘人员信息批量导入(需excel格式的简历表)。
● 员工应聘内部招聘,相应的员工档案信息自动作为简历信息。
● 可以根据不同岗位面试要求自定义面试内容模版,并自定义面试流程。
● 用户可在线对应聘人员进行面试测评,面试结果可自动保存到其简历中。
● 被录用的员工,可从人才信息库直接将其相应信息转档进入人员档案库。
● 可对于高层人员或特殊员工进行相应的背景情况调查备案。
● 针对应聘建立,可根据需要查询生成相应的报表。
● 针对招聘计划,可建立招聘效果评估表。
6、培训管理
对企业内部员工培训体系的管理,实现培训计划与资源的管理。
● 支持员工在线提出培训需求,并由人力资源部门汇总,并编制培训规划。
● 可以对培训分类型管理,如:岗位培训、入职培训、内部培训、外部培训和海外培训等。
● 企业可建立强大的培训资源库,如常用课程、培训机构、培训讲师等。
● 支持自定义课程体系,可以实现多层次设置。
● 支持同一个培训课程可以设置/启动多个培训班次。
● 可对培训项目、培训活动的申请和审批、评估培训结果等进行过程监控。
● 可记录员工培训参加情况、培训成绩、培训时间等,并与员工档案关联。
● 参加培训人员可对培训效果(包括讲师、机构和课程等)进行评估,有助于优化培训的设置。
7、保险福利
管理员工社会保险及商业保险,生成相关台账及报表。
管理员工社会保险及商业保险,生成相关台账及报表。
● 支持针对不同人群设置不同社保帐套。
● 可批量设置社保基数与缴费比例,批量设置参保人,批量修改参保数据。
● 支持离职人员可以继续参保缴费,灵活解决一些特殊情况。
● 支持社保台账月末、年末汇总,并能导出成EXCEL文件。
● 社保数据可与薪资管理进行数据关联。
● 社保信息与人员信息档案关联,员工可随时自助查询。
● 提供完善的保险福利统计分析功能,生成多种格式的明细报表和统计报表。
● 可记录员工商业保险参保情况。
● 支持社保的工伤理赔、生育理赔管理。
8、合同管理
管理企业员工的劳动合同或其它合同协议的签订、变更、续签、违约、终止等全过程。
● 支持多种类型的合同管理,如劳动合同、培训协议、保密协议等。
● 支持对历史劳动合同的批量导入。
● 劳动合同编号可根据需要定义规则自动生成。
● 支持劳动合同到期续签功能,自定义设置合同续签规则。
● 支持合同到期自动提醒。
● 提供多种快速查询功能,如未签订劳动合同人员、已离职但未终止的合同等。
● 提供强大的高级查询功能,筛选出管理所需要的各种状态的合同信息。
● 合同信息与人员档案信息关联。
9、绩效考核
通过自己定义绩效考核类别、项目、评分标准、权重及评议流程,满足企业实现目标考核、行为考核等绩效考核要求,帮助企业实现对员工客观公正的考评。
● 可自定义考核类别,实现多种考核方式,如行为考核,目标考核。
● 自定义考核模板,设置考核表的格式、考核项目及分值计算公式。
● 自定义考核评议的流程环节,每个评议环节可限制评议栏目,有效避免考核误 *** 作。
● 支持从计划到考核,计划与考核均可审核及退回。
● 桌面自动提醒待审核计划或待评议的考核表。
● 可对最终考核结果进行修正。
● 可生成多种考核汇总表。
● 支持员工通过自助帐号对考核结果进行申诉,并查询申诉处理结果。
● 考核结果可自动连接员工档案,考核分数或系数可直接被薪资模块调用。
10、用品管理
管理员工用品信息,实现对各类用品的入库,发放,更换,统计报表等功能。
● 根据企业需要设置分类用品信息,规范管理企业的劳保用品。
● 支持用品库存记录实时变动更新,实现数据快速更新,确保数据真实性。
● 可对用品设置使用年限,系统自动提醒下次发放的时间。
● 用品发放后,可以进行用品更换管理。
● 提供多种统计报表,方便领导与用品管理人员查看。
● 与人员档案信息关联,可在人员档案查阅用品领用记录。
11.宿舍管理
管理企业的员工集体宿舍。
● 按区域、大楼建立宿舍基本资料。
● 按宿舍床位分配员工入住;支持批量导入入住信息。
● 图形化显示宿舍入住情况。
● 自动生成宿舍使用情况报表。
12.公共信息
管理企业人力资源相关的公共文件、发布相关信息,如规章制度、通知公告等。
可以建立多种公共信息类别,按类别编辑相关信息,可以以网页形式,也可以以文件附件形式。信息编辑完成可发布到桌面,用户可根据权限进行随时查阅。
13.员工自助
员工自助的目的是让企业的员工都参与到人力资源管理流程中去,使人力资源管理更科学。
● 员工可查看本人的档案信息以及相关的信息如社会保险、培训、薪资、岗位异动、合同、绩效考核成绩等;
● 部门负责人可查看本部门所有员工的档案及相关信息。
● 员工可以在线进行考核评分。
● 员工可提交培训需求、招聘需求、考核申诉等。
● 员工可在线查阅规章制度、企业部门岗位职责、当月(周)生日员工等。
用户表:{用户编号(PK),用户名,密码,用户类别, 所属专业号(FK)}
课程表:{课程编号(PK),课程名,用户编号(FK) ,学分}
院 系:{院系编号(PK),院名}
专 业:{专业号(PK),专业名称 ,专业简介 ,总学时,所属院号(FK)}
参考书:{索书号(PK),课程编号(FK),ISBN/ISSN,责任者,出版日期,校图书馆连接地址,电子书连接地址}
专业课程表{专业号,课程编号} 联合主键
看需求,如果只需要区分三种角色的话一个表就够了,加个识别字段
如果角色有特殊的用处,比如相应的角色可以后台设置角色能 *** 作的权限,比如看那些页面之类的,就两个表,用户表关联角色id,角色表里放相应的角色信息
如果不是所有人都有角色的话,需要第三个表,用户_角色关联表
一般情况下都是两个表
网上资料说权限设计 = 功能权限 + 数据权限,我认为还是很有道理的。之前项目中只涉及到功能权限,没有数据权限,原因是最开始设计时,数据已经绑定在特定的用户下了,而且涉及到的表数量很少,不需要单独考虑数据权限的问题。
权限管理,最细致的权限管理有 用户,用户组,角色,权限,功能。根据不同的需求适当选择,如 用户量过大,每个人都授权和麻烦,就引入用户组,对用户组赋予权限。功能上也根据业务不同做适当的扩展。由于如用户权限之前存在多对多关系,需要引入中间表。
本系统设计如下:
数据量很小,功能也不复杂,所以只有用户,角色,权限(功能)及产生的中间表。
表中的数据都是提前填的,用户登陆,查ermroleuser表,获取角色,查ermrolefunction表,获取功能,再查ermfunction表,返回该用户的功能的中文,在页面上展示。
功能权限详细设计请参考,本项目也是受此启发:
>
以上就是关于大数据量的数据库表设计技巧全部的内容,包括:大数据量的数据库表设计技巧、简述数据库应用系统的设计步骤(简述数据库系统构成及数据设计的原则)、人事工资管理系统怎么建立数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)