使用PHP规范化数据库的过程是什么?

时间:2015-12-11 03:48:02

标签: php mysql normalize

我刚刚接手了一个非常可怕的数据库设计工作,它大量使用逗号分隔值来存储数据。我知道,我知道,这是地狱。

db是mysql,目前正在使用MySql Workbench访问它。

我已经想到要删除的内容以及需要的新关系表。

所以,我的问题是,如何通过将逗号分隔数据迁移到新表来继续?任何专门用于规范化数据库的工具?

编辑: 服务器代码是PHP。

2 个答案:

答案 0 :(得分:1)

首先定义新的表和属性。

然后,使用PHP或Python或您最喜欢的语言与MySQL调用,并编写一个1次转换器,循环并读取旧表和记录,并将正确的记录插入新表。

答案 1 :(得分:1)

看来您正在寻找标准做法。那里有不同程度的非规范化数据库。我遇到的那些已经使用自定义代码和工具进行了规范化。

SQL Server Integration Services(SSIS)可用于某些情况。在您的情况下,我构建了一个涉及以下内容的迁移脚本:

  • 创建规范化表格
  • 创建存储过程或PHP脚本以从非规范化表中读取数据,将其转换并加载到规范化表中
  • 创建日志表或日志文件
  • 在沙箱中执行迁移;这样写日志
  • 版本控制脚本
  • 根据需要更正proc /脚本
  • 创建另一个沙箱
  • 在沙盒上运行完整脚本
  • 如果成功,请在prod上运行完整脚本(带日志记录)

SSIS在许多组织中用于ETL;它是Microsoft BI堆栈的标准工具,也可用于在非Microsoft DB之间迁移数据。

名为Talend的开源ETL工具也可能有助于转换数据。我个人认为PHP脚本是最快速,最容易操作的数据。