我们正在通过将多个 Microsoft SQL Server 数据库组合到一个 MySQL 数据库来处理一个数据聚合项目。所有 mssql 数据库都具有相同的架构。
要求是:
- 每个mssql数据库都可以独立导入mysql
在能够将每条记录导入 mysql 之前,我们需要通过 php 使用特定的 createrias 验证每条记录。
每个导入的 mssql 数据库都可以回滚。这意味着即使它已经导入到mysql,所有的mssql数据库也可以从mysql中删除。
我们还想知道导入到mysql的每条记录是从哪个mssql数据库来的。
所有导入过程都将使用 PHP 完成。
我们在很多方面都有困难。我们不知道解决问题的最佳方法是什么。
非常感谢您的帮助。
ps:每个mssql数据库有60张左右的表,每个表可以有几十万个。
最佳答案
不要将 PHP 用作数据库管理实用程序。每当您构建一个快速的 PHP 脚本以将记录直接从一个数据库传输到另一个数据库时,当生产操作需要该脚本时,您将给自己带来巨大的伤害。
你有很多问题需要解决:
- 您有多个 MSSQL 数据库,这些数据库具有相似但不完全相同的表。
- 您有一个要将数据合并到其中的 MySQL 数据库。
- 导入的数据在合并之前必须以特定方式更改。
- 您想在导入时避免所有重复记录。
- 您想知道每条记录最初来自哪个数据库。
解决方案?
- 分析源 MSSQL 数据库并为它们创建合并策略。
- 在 MySQL 数据库上创建适合 #1 中合并策略的数据库结构,包括合并所需的所有新键约束(如唯一键和外键)。
此时你有两个选择:
- 使用您选择的 RDBMS 管理实用程序将每个源数据库中的数据转储到原始数据中。更改该数据以适合您的合并策略和约束。记录下来,然后将所有数据合并到您的新数据库结构中。
- 使用类似 opendbcopy 的工具将列从一个数据库映射到另一个数据库并运行批量导入。
希望这对您有所帮助。
关于mysql - 将多个mssql数据库与php合并为一个mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8904228/