求一架构 : 保留历史数据
校方提出需求如下:
1.要保留学期留历史数据
比如:
● 一年级一班2008-2009上学期有30个人,下学期有35个人,在查看上学期历史数据的时候只能显示上学期的30个人
● 某学生在上学期名叫“张三”,而下学期改名叫“张四”,在查看上学期历史数据的时候应显示“张三”
● 某教师在上学期可能任职“总务”,而下学期可能任职“主任”,在查看上学期历史数据的时候应显示教师当时的任职情况,即“总务”
2.能实现跨学期数据统计
而在统计分析中,要能实现在不同学期间实现统计,比如,可以统计2000年-2009年,某教师的考评情况,生成图表;可以统计学生从一年级到六年级的成绩,生成图表
有考虑过以下几种方案,但每种方案都有不足之处
1. 数据库分离
不同学期数据库独立,在学期交替的时候将数据备份到另一个数据库,作为历史数据保留,对现有数据的修改不会影响历史数据,去年叫“张三”的学生,今年改名“张四”,查看历史数据的时候,还是叫“张三”
优点:容易实现历史数据的保留,能实现不同学期数据绝对独立
缺点:跨学期统计,则需要跨数据库访问,不方便
2. 数据表分离
不同学期表独立,比如表 Students ,在学期交替时将数据备份至另一个表 "2008-2009 上 Students ",作为Students 2008-2009上学期历史数据保留
优点:跟方案1一样,容易实现历史数据的保留,能实现不同学期数据绝对独立,互不影响
缺点:随着学期的增加,数据库容量巨增;跨学期统计,需在多表之间统计,较方案1中跨数据库统计方便些,但也不方便;因为不同学期表名不同,和ORM的映射关系不容易处理。
3.在需要保留历史数据的每个表都加学期字段
一个表包含所有学期的数据,如Students:
学期 | 编号 | 姓名 | 成绩 |
2008-2009 上 | 01 | 张三 | 80 |
2008-2009 下 | 01 | 张四 | 90 |
2008-2009 下 | 02 | 李四 | 85 |
优点:能实现不同学期数据独立,跨学期统计数据很方便,在一个表内
缺点:每一个查询都要带上学期,一个表包含多条编号相同的记录,表之间的关系如何建立。学期增加,数据库容量巨增。
转载于:https://www.cnblogs.com/kuiyouli/archive/2009/09/14/1566140.html
求一架构 : 保留历史数据相关推荐
- 从AdventureWorks学习数据库建模——保留历史数据
在业务需求中,经常需要我们在系统中能够记录历史信息,能够查看到历史变动情况,这时我们可以通过增加开始结束时间字段来记录数据的历史版本.对数据的历史记录主要分为:关系.属性历史,实体历史和变更历史. 关 ...
- python:累加数字求平均数(保留小数)
n=int(input()) i=1 sum=0 while i<=n:x=int(input()) # 累加年龄sum +=x #将计数器增加1i +=1 print("%.2f&q ...
- 输入圆半径,求圆面积并保留两位小数
import java.util.*; //调用util包中的所有类 public class Circle //定义一个Circle类 {public static void main(String ...
- DWH的保留原始历史数据的一种方法
前几天有朋友咨询在数据仓库Stage或ODS层该如何保存历史数据, 他的这个问题其实很普遍, 所以写了点东西放在博客上. 一般数据仓库项目中, Stage或ODS层要保留几天或几个月的源表数据. 保留 ...
- bigdicmal除法精度设置_使用java求高精度除法,要求保留N位小数
题目要求是高精度除法,要求保留N位小数(四舍五入),并且当整数部分为0时去除0的显示 import java.math.BigDecimal; import java.util.Scanner; pu ...
- 我花600小时,调研30家银行,为你讲透银行数据架构,小白都能懂
如果一个系统,没有数据架构,那肯定是在吹牛,今天就来讲讲银行的数据架构.这是我花了600多小时,调研了30+银行,得出来的方法论. 狭义的数据仓库数据架构用来特指数据分布,广义的数据仓库数据架构还包括 ...
- 大数据平台架构与原型实现-读书笔记8
第八章 批处理与数据仓库 一.大数据与数据仓库 从大数据应用的角度看,数据仓库是大多数企业"试水"大数据的首选切入点,原因为: 数据仓库的主要编程语言以SQL为主,在大数据平台上, ...
- 深度分析|一文读懂银行数据架构体系
上一篇讲了银行数据仓库的系统架构,这次给大家讲讲数据架构.如果一个系统,没有数据架构,那肯定是在吹牛. 狭义的数据仓库数据架构用来特指数据分布,广义的数据仓库数据架构还包括数据模型.数据标准和数据治理 ...
- 系统架构设计——秒杀系统架构设计
摘要 秒杀大家都不陌生.自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见.简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程.从架构视角来看,秒杀 ...
最新文章
- try-catch-finally中的4个巨坑,老程序员也搞不定!
- 【vue】.native给组件绑定原生事件
- iOS后台运行的设置方法
- python 还原九宫格图片_用Python做一个好玩的朋友圈九宫格抽奖
- 表的插入、更新、删除、合并操作_16_ 删除表中所有记录
- MMJ-Spring Boot(Java)获取小程序Openid
- EFCore批量操作,你真的清楚吗
- 这5种员工,千万不能重用
- CentOS6.0 yum php mcrypt 扩展安装问题
- 比 matplotlib 效率高十倍的数据可视化神器
- android studio for android learning (二十四 )bitmap and bitmapFactory
- JavaScript网页游戏开发实战视频教程
- 2022-2027年中国智能化设计行业发展前景及投资战略咨询报告
- NoSQLBooster for MongoDB的下载,安装,连接数据库,查询
- AMR文件时长解析——附c代码
- Predicting microbial interactions through computational approaches
- 爬虫python创意_爬虫案例:利用python爬虫关键词批量下载高清大图
- Techo TVP物联网开发者峰会青润的总结(带视频和完整未剪切音频版本)
- 使用ndp.view标注大型医学图像
- Project Euler in Java [001-040]
热门文章
- 下列选项中不属于python循环语句的是哪一项_下列选项中,不属于字典操作的方法是哪一项?_学小易找答案...
- 【C/C 】浅谈C/C 中函数指针与回调函数
- abb智能控制系统_ABB助力国网冀北电力打造虚拟电厂
- 使用xshell上传本地文件到服务器
- 子进程 已安装 post-installation 脚本 返回错误状态 1 dpkg: 依赖关系问题使得 mysql-server 的配置工作不能继续: mysql-server 依赖于 mysq
- 第19次csp认证 202006-2 稀疏向量(C++)
- 工业交换机的日常维护保养该怎么做?
- PDH-SDH光端机指示灯具体含义介绍
- 家用、商用、工业交换机的用途与区别
- 光纤收发器相比其他数据交换器有哪些优势?