将数据从旧的MySQL模式迁移到新模式

时间:2019-10-09 08:09:14

标签: php mysql database-migration

我正在尝试找出将数据从旧数据库架构迁移到新架构的最佳方法。基本上,我正在处理软件替换(因此是新的数据库结构),现在我需要将数据从旧数据库迁移到新数据库中。不幸的是,这并不像基于旧模式中的选择在查询中运行简单插入操作那样简单。

旧模式中可以找到的示例结构:

**课程**

| id | title               | start_date | price  |
| 1  | Some course title 1 | 2019-10-09 | 100.00 |
| 2  | Some course title 2 | 2019-10-09 | 100.00 |

当然,实际表中有更多列,但这只是一个基本概念。

在新模式中,结构是这样的:存在两个表,其中一个表保存课程标题的翻译后的值。

新模式中可以找到的示例结构:

**课程**

| id | title_tid | start_date | price  |
| 1  | 1         | 2019-10-09 | 100.00 |
| 2  | 2         | 2019-10-09 | 100.00 |

**翻译**

| id | content_en          | content_nl |
| 1  | Some course title 1 | null       |
| 2  | Some course title 2 | null       |

在新架构中,这使我们能够让用户将其课程标题翻译成多种语言,等等。新架构中的许多其他来源也使用了translations表。

我的问题的基础是,我必须或者至少认为我必须遍历旧模式的Courses表的记录,并为每个记录首先在新模式中创建一个Translations记录。从该翻译中,我需要将ID放入新Courses表的title_tid中。

现在,最好的方法是什么?我可以仅在SQL中执行此操作,还是需要编写脚本来迁移此数据?例如在PHP或类似的东西?当然,这对于性能而言不是很好。

编辑: 是的,我知道这种翻译设置在设计上非常差劲,我也不知道为什么这些家伙会这样做……但是,嘿,这里不是重点:P

0 个答案:

没有答案