【问题标题】:One-way database sync to MySQL单向数据库同步到 MySQL
【发布时间】:2011-08-10 13:55:04
【问题描述】:

我有一个基于 VFP 的应用程序,其中包含一个完整的 DBF 目录。我在 .NET 中使用 ODBC 连接并在此数据库上执行事务。我想将此数据镜像到在我的虚拟主机上运行的 mySQL。

注意事项:

  • 这将只是一个单向镜像。 VFP 到 mySQL
  • 必须只支持插入和更新。删除无关紧要
  • 并非所有表都是必需的。事实上,我更愿意使用已定义的 SELECT 语句来仅镜像必要数据的伪视图
  • 我在任何 VFP 记录上都没有“时间修改”标记。
  • 我没有大量的数据记录(可能总共几千条),也没有大量的 mySQL 端并发用户,但我希望尽可能高效。

建议的插入策略(看起来还不错……):

  • 在 mySQL 中构建临时表,插入我要镜像的 VFP 表/视图的所有主键
  • 在 mySQL 端运行“SELECT primaryKey from tempTable not in (SELECT primaryKey from mirroredTable)”以识别缺失记录
  • 为这些记录生成并运行必要的 INSERT sql
  • 吹走临时表

提议的更新策略(似乎真的很重量级,可能会破坏对 mySQL 删除表的打开查询):

  • 在 mySQL 中构建临时表并插入我要镜像的 VFP 表/视图中的所有记录
  • 删除现有的 mySQL 表
  • 将 tempTable 名称更改为新表名称

这些只是首先想到的策略,我相信还有更有效的方法(尤其是更新方面)。

我在这里寻找一些替代策略。有什么绝妙的想法吗?

【问题讨论】:

    标签: mysql synchronization visual-foxpro


    【解决方案1】:

    听起来您的目标很小,但您可以尝试查看一些复制设计模式。 Microsoft 记录了一些数据复制模式here,这是一个很好的起点。我的建议是查看简单的数据移动副本模式。

    【讨论】:

      【解决方案2】:

      您的 VFP 表是否在 VFP 数据库 (DBC) 中?如果是这样,您应该能够在该数据库上使用触发器来设置有关需要在 MySQL 中更新哪些数据的信息。

      【讨论】:

        猜你喜欢
        • 2012-07-07
        • 1970-01-01
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 2018-01-17
        • 2018-10-03
        • 1970-01-01
        相关资源
        最近更新 更多