将不同来源的数据合并到数据库

时间:2012-01-05 20:07:43

标签: data-synchronization

我要比较来自两个不同来源的数据。

从不同的来源,我需要获得college_id,student_id,student_name&我想检查它们是否在我的数据库中是最新的。源始终具有准确的数据。

一所大学可能有多个记录。

每次登录时,我都需要在我的数据库中保持这些信息的最新状态。我该怎么办?

删除&我们的团队不建议使用insert选项。那么,我该如何比较?

任何人都可以提供一些有效的伪代码吗?我应该用Java或列表中的二维数组存储源信息还是如何存储?

如果记录在源中不存在但存在于数据库中,那么我需要从DB中删除它。

如果记录存在于来源和在db中不存在,我需要在db中插入它。

欣赏是否有人可以提供是否使用列表或2-D数组与某些伪代码的洞察。

谢谢!

2 个答案:

答案 0 :(得分:0)

您概述了问题中的大部分步骤。只要你同步,就去吧:

  1. 从数据库中获取数据
  2. 将其与规范来源的数据进行比较
  3. 根据数据的比较,在数据库中执行相应的操作:
    • 如果您没有
    • ,请插入新记录
    • 如果数据已更新,请更新您的记录
    • 更新记录中的时间戳,以便您知道何时更新
  4. 最后一步,删除数据库中未更新的所有记录"最近"基于时间戳

答案 1 :(得分:0)

基本上,你需要

  1. 从数据库加载所有记录
  2. 加载来自可信来源的所有记录
  3. 查找数据库中不再受信任来源的所有记录。删除那些。
  4. 查找受信任来源中不在DB中的所有记录。添加这些。
  5. 查找所有更改记录。更新那些。
  6. 问题是,您没有为您的记录指定主键 - 因此#5可能无关紧要。

    对于所有其他人,您需要一个封装记录的类,实现equals()hashCode()方法(正确!),以及一些知识为removeAll()的集合和retainAll()方法。

    希望有所帮助。

    PS。确实可以逐步地这样做,例如,如果你没有足够的emory来填充整个数据集。在这种情况下,您需要能够读取 ordered,的记录,其顺序与等价关系兼容。