首页 > 解决方案 > 在保持关系的同时将 2 个数据库转换为 1 个

问题描述

我有一个场景,我需要找出一个解决方案,将 2 个数据库中的数据合并到一个更大的数据库中。例如,假设我们有 2 个名为“A”和“B”的数据库。“A”和“B”都有 2 个表(员工和家属),表定义相同。在数据库“A”和表employee 中,我们有一条记录,它在dependents 表中有一条对应的子记录。

类似地,在数据库“B”和表employee 中,我们有一条记录,并且在dependents 表中有一条相应的子记录。

在employee表中,emp_id是PK

在dependents 表中,dependent_id 是PK,emp_id 是FK。

雇员和家属表之间的关系是一对多的。一名员工可以有许多家属。

数据库“A”

表员工

emp_Id|first_name|last_name|email|phn
1|john|doe|john.doe@somedomain.com |xxx-xxx-xxx

表依赖

dependent_id|first_name|last_name|relationship|emp_id
1|lilly|francis|wife|1

数据库“B”

表员工

emp_Id|first_name|last_name|email|phn
1|mike|jenning|mike.jenning@somedomain.com|xxx-xxx-xxx

表依赖

dependent_id|first_name|last_name|relationship|emp_id
1|ruby|nicholas|wife|1

现在,我想从数据库 A 和数据库 B 中读取数据并写入一个名为 C 的新数据库,该数据库具有与 A 和 B 相同的表定义。这必须在维护子关系的同时完成。

数据库 C

表员工

emp_Id|first_name|last_name|email|phn
1|john|doe|john.doe@somedomain.com |xxx-xxx-xxx
2|mike|jenning|mike.jenning@somedomain.com|xxx-xxx-xxx

表依赖

dependent_id|first_name|last_name|relationship|emp_id
1|lilly|francis|wife|1
2|ruby|nicholas|wife|2

我正在寻找可以使用 JAVA 设计的可能解决方案。我可以考虑从数据库 A 读取数据并将其写入数据库 C 并类似地从数据库 B 读取并将其写入数据库 C,但是我还没有想出一种方法来在写入来自 A 和 B 的数据时维护子关系到数据库 C.

标签: javamysqlsqldatabasemerge

解决方案


推荐阅读