【问题标题】:Combine several mssql database to one mysql with php用php将多个mssql数据库合并为一个mysql
【发布时间】:2012-02-12 19:46:11
【问题描述】:

我们正在通过将多个 microsoft sql server 数据库组合到一个 mysql 数据库来处理数据聚合项目。所有 mssql 数据库都具有相同的架构。

要求是:

  • 每个mssql数据库都可以独立导入mysql
  • 在能够将每条记录导入 mysql 之前,我们需要通过 php 使用特定的 createrias 验证每条记录。

  • 每个导入的 mssql 数据库都可以回滚。这意味着即使它已经导入到 mysql,所有的 mssql 数据库都可以从 mysql 中删除。

  • 我们还是想知道导入到mysql的每条记录是从哪个mssql数据库来的。

    所有导入过程都将使用 PHP 完成。

    我们在很多方面都有困难。我们不知道解决问题的最佳方法是什么。

    我们将非常感谢您的帮助。

    ps:每个 mssql 数据库大约有 60 个表,每个表可以有几十万个。

【问题讨论】:

    标签: mysql sql-server import


    【解决方案1】:

    不要将 PHP 用作数据库管理实用程序。每当您构建一个快速的 PHP 脚本以将记录直接从一个数据库传输到另一个数据库时,当生产操作需要该脚本时,您将给自己造成一个巨大的伤害。

    你有很多问题需要解决:

    • 您有多个 MSSQL 数据库,其中包含相似但不相同的表。
    • 您有一个 MySQL 数据库,要将数据合并到其中。
    • 导入的数据在合并之前必须以特定方式进行更改。
    • 您希望防止导入中的所有重复记录。
    • 您想知道每条记录最初来自哪个数据库。

    解决方案?

    1. 分析源 MSSQL 数据库并为其创建合并策略。
    2. 在 MySQL 数据库上创建符合 #1 中的合并策略的数据库结构,包括合并所需的所有新键约束(如唯一键和外键)。

    此时你有两个选择:

    1. 使用您选择的 RDBMS 管理实用程序将每个源数据库中的数据转储为原始数据。更改该数据以适应您的合并策略和约束。记录这一点,然后将所有数据合并到新的数据库结构中。
    2. 使用opendbcopy 之类的工具将列从一个数据库映射到另一个数据库并运行批量导入。

    希望这会有所帮助。

    【讨论】:

    • 我们必须使用问题标题中指定的 PHP 和 mysql。我们需要通过 PHP 控制每条记录的插入。 msssql 数据库具有相同的架构。我们需要将所有这些 mssql 中的所有记录插入到一​​个 mysql 数据库中,除了一些符合我们标准的记录将被拒​​绝。
    • 定义“控制每条记录的插入”。很少有地方可以将 PHP(一种可编程的超文本预处理器)用作数据库管理实用程序。
    • 在插入 mysql 数据库之前,来自 Mssql 服务器的每条记录都必须通过我们的验证逻辑。此验证过程将使用 php 完成。
    • 所以让我直截了当地说:你不明白为什么你在以一种从未打算使用的方式使用工具时遇到问题,而且你也拒绝使用任何东西,除了非常同样的工具不起作用?
    • 请阅读问题标题。项目中需要用到PHP。
    猜你喜欢
    • 2012-09-09
    • 2014-05-15
    • 2012-09-18
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2013-12-08
    • 2011-06-03
    相关资源
    最近更新 更多