0

我正在做一个项目,我将每月收到一次学生数据转储。数据将被导入我的系统。初始导入将是大约 7k 条记录。在那之后,我预计一个月不会超过几百。但是,也会有现有记录会随着学生更改成绩等而更新。

我正在尝试确定跟踪已收到、导入和随时间更新的内容的最佳方式。

我正在考虑使用将 SFTP 转储导入包含 creation_date 和 modify_date 字段的表的脚本来设置托管 MySQL 数据库。我的想法是,执行提取的人可以连接到 MySQL 数据库并每个月对导入的表运行查询,以便在下次提取之前获取差异。

我的另一个想法是每个月为每个数据转储创建一个新的接收表。然后我将对差异执行查询。

注意:导入系统是遗留系统,将接受使用实用程序和唯一 csv 类型文件的导入。所以这可能排除了像 XML 这样的选项。

提前感谢您的任何建议。

4

1 回答 1

0

我将假设您随着时间的推移跟踪学生在一门课程中的成绩。

我会推荐一个两表的方法:

表 1:事务级别数据。仅添加。只是简单地附加了新信息。Sammy 在本周的测验中得了 75 分,Beth 获得了 5 分的额外积分,等等。每一行都是一次交易。大概它有学生的姓名/身份证,要添加的值,可能是最大可能值或某些加权因子,当然还有添加的时间戳。所有这些只是不断增加一个永无止境的(理论上)表。

表 2:汇总表,每隔一段时间重建一次。此表对第一个表进行简单聚合,将事务分数处理为全局分数。也许这是一个简单的总和,也许是加权平均数,也许你有更复杂的想法。该表每个学生(每门课程?)有一行。您希望每晚都对其进行重建。如果你很懒惰,你只需 DROP/CREATE/INSERT。如果您担心数据丢失,您只需插入并添加一个时间戳,这样您就可以返回快照。

于 2018-05-03T20:05:37.050 回答