0

我最近一直致力于规范化和重组我的数据库,以使其从长远来看更有效。目前我有大约 500 条记录,显然我不想丢失用户数据。

我假设通过 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 和配对记录 ID 存储在 record_units 表中,以便稍后检索这些字段。

尽管我会说我知道平均水平,但我对 SQL 的经验并不丰富。我知道这个操作用我的 cakephp 设置会很简单,因为我所有的关联都已经设置好了,但我不能这样做。

4

1 回答 1

0

如果我理解正确,您想将相关记录从旧表复制到新表,在这种情况下,您可以使用类似这样的东西

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

这会将单位类型从旧表复制到新单位表中的匹配 id,然后您可以在第三张表上执行类似的操作

于 2013-06-21T06:47:14.027 回答