TL;DR 在一个结构极差的数据库(几栏重复、没有相互关系和重复数据)与另一个高度组织和关系结构之间迁移数据的最佳方式是什么?——长读!
我最近承担了非常复杂的工作。 它重写一个全公司网上信息技术平台。 恐怕我会提供太多细节,因为我们可以让老的开发商知道(他拥有对公司头部的恶棍枪,因为他是唯一知道如何做像发票制作这样的重要事情的人,并且需要越来越多的钱。
主要问题是,整个网络平台(由所有工作人员和所有客户使用)都由一位具有技能的gu编为,不低于业余<>。 它由大约300份个人代码文档组成。 没有一个模板图书馆——它把所有硬编码输入每个档案。 没有一个符合逻辑的数据库结构,实际上随着他走到一起而组成。 没有安全——它令人震惊。 无论如何,我们将在大约3个月时间内重写整个平台。
然而, b子说,早上它就活着,任何地方都不可能失去客户数据。 整个数据库内容必须直接复制。 数据库的结构目前非常贫穷,几乎不可能与之合作,但本周我们将(试图!) 撰写一些文字,将其转移到我们新的高度关系结构上,这种结构更符合逻辑。 问题是,如何最好地做到这一点?
其中一个例子是处理。 在旧数据库中,大约12个表格(共44个)使用地址。 我们有一张<代码>地址的表格,其他表格(例如<代码>address_id)将相互参照,以保持对物的清理。 主要问题是,在大约一半的表格中,这些地址作为<条码>1条码>、<条码>、<2>>>>、<条码>、<条码>、<条码>、<条码>、<条码>、<条码>、>条码>、>、<条码>、<条码>、>、<条码>、<>条码>、<>>条码>、<>条码>、<>条码>、>、<条码>、>、<条码>、>、<条码>、>、>、<条码>、<>、>、>、>条码>、 整件事的现场!
A second example is dates - in some tables he has seconds-since-Epoch dates, in others MySQL NOW()
dates, and in others he literally stores it in 6 columns per row - year
, month
, day
, hour
, minute
, second
- ouch...
如何设法解决这一问题?Should we look at our * E/CN.6/2009/1。 从我们获得的数据,或者如果我们扭转这种局面,看his。 表格和工作说明其数据需要进入我们吗?
www.un.org/Depts/DGACM/index_spanish.htm 从方案拟订角度看,我们应如何处理这一问题? 许多数据需要动态格式(例如日期),因此,我们正想把数据一流放到一行,正确格式,然后将数据重新列入我们的文字正确位置。
Speed and efficiency of queries is not an issue for us, as we will only need to run this once (after testing), on our local machines. His database is currently ~800MB when SQL dumped, but again a lot of this is his useless test data, or just totally unnecessary.
Any ideas on the best way to tackle this? For reference our system will be re-written in PHP so any PHP-based recommendations would be nice. The database is currently (and still will be) in MySQL.