我刚刚接手了一个非常可怕的数据库设计工作,它大量使用逗号分隔值来存储数据。我知道,我知道,这是地狱。
db是mysql,目前正在使用MySql Workbench访问它。
我已经想到要删除的内容以及需要的新关系表。
所以,我的问题是,如何通过将逗号分隔数据迁移到新表来继续?任何专门用于规范化数据库的工具?
编辑: 服务器代码是PHP。
答案 0 :(得分:1)
首先定义新的表和属性。
然后,使用PHP或Python或您最喜欢的语言与MySQL调用,并编写一个1次转换器,循环并读取旧表和记录,并将正确的记录插入新表。
答案 1 :(得分:1)
看来您正在寻找标准做法。那里有不同程度的非规范化数据库。我遇到的那些已经使用自定义代码和工具进行了规范化。
SQL Server Integration Services(SSIS)可用于某些情况。在您的情况下,我构建了一个涉及以下内容的迁移脚本:
SSIS在许多组织中用于ETL;它是Microsoft BI堆栈的标准工具,也可用于在非Microsoft DB之间迁移数据。
名为Talend的开源ETL工具也可能有助于转换数据。我个人认为PHP脚本是最快速,最容易操作的数据。