Mysql 在组织之间交换数据转储的最佳方法

Mysql 在组织之间交换数据转储的最佳方法,mysql,sql-server,database,database-administration,data-exchange,Mysql,Sql Server,Database,Database Administration,Data Exchange,我正在做一个项目,我将每月收到一次学生数据转储。数据将导入我的系统。最初的导入量大约为7k条记录。在那之后,我预计一个月不会超过几百人。然而,也会有现有的记录,这些记录会随着学生成绩的变化等而更新 我正在努力确定跟踪接收、导入和更新内容的最佳方法 我想用一个脚本建立一个托管的MySQL数据库,该脚本将SFTP转储导入一个包含创建日期和修改日期字段的表中。我的想法是,执行提取的人可以连接到MySQL数据库,每月对导入的表运行一次查询,以在下一次提取之前获得差异 我的另一个想法是每月为每个数据转储创

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

我正在努力确定跟踪接收、导入和更新内容的最佳方法

我想用一个脚本建立一个托管的MySQL数据库,该脚本将SFTP转储导入一个包含创建日期和修改日期字段的表中。我的想法是,执行提取的人可以连接到MySQL数据库,每月对导入的表运行一次查询,以在下一次提取之前获得差异

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

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


提前感谢您的建议

我假设你在跟踪学生在一门课程中的成绩

我建议采用两表法:

表1:事务级数据。仅添加。新的信息只是附加在上面。萨米在本周的测验中得了75分,贝丝获得了5分的额外学分,等等。每一行都是一笔交易。大概它有学生的名字/id,添加的值,可能是最大可能值或一些权重因子,当然还有添加的时间戳。 所有这些都只是不断地增加了一张永无止境的(理论上)表格

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

谢谢!像这样的东西可能有用。他们的两个不同的数据库。一个属于学校系统,另一个属于图书馆系统。随着时间的推移,我需要跟踪的字段将是学生的年级、学校、教师、电话等。如果这些字段在学校系统中发生变化,那么它们需要在图书馆系统中更新。这里的诀窍是拥有一个规范表,而不是简单地删除旧数据。您可以简单地为每个学生选择最近的一行。或者创建一个“隐藏”字段,该字段在写入时为FALSE,但在添加新行时更新为TRUE。