2013-06-21 32 views
0

我最近一直在努力规范化和重构我的数据库,以使其在长期运行中更加有效。目前我有大约500条记录,显然我不想丢失用户数据。重组数据库,在phpmyadmin中使用SQL来移动数据

我通过phpmyadmin假设SQL是最简单的方法吗?

所以让我给你们一个例子

在我的旧表我想有这样的事情

records //this table has misc fields, but they are unimportant right now 
id | unit | 
1 | g | 

用我新的,我把它拆分开3个不同的表。

records 
id 
1 

units 
id | unit 
1 | g 

record_units 
id | record_id | unit_id 
1 | 1   | 1 

只是要清楚,我没有添加任何东西到单位表中。该表作为参考号存储在record_units表中

正如您所见,它非常简单。第二个表格中移动的是我开始使用索引表来保存我的单位,因为它们会经常重复。然后我将该单元ID以及配对记录ID存储在record_units表中,以便稍后可以检索这些字段。

我对SQL并不是非常有经验,尽管我会说我知道平均数。我知道这个操作对于我的cakephp安装来说非常简单,因为我的所有关联都已经设置好了,但是我不能这么做。

回答

0

如果我理解正确的话,你希望相关记录从旧表复制到新表,在这种情况下,你可以使用这样的事情

UPDATE units u 
INNER JOIN records r 
    ON u.id=r.id 
SET u.unit = r.unit 

这将单位类型从旧表复制到在新的单位表中匹配的ID,然后你可以在你的第三张桌子上做点类似的事情