我有两个数据库:一个是旧的并且已弃用;另一个是新的,有效的。它们都有一个名为brands
的表。
在不推荐使用的数据库中,brands
表格类似以下内容:
id | name
1 | Playstation 1
2 | Playstation 2
3 | Playstation 3
4 | Playstation 4
5 | Xbox
6 | Xbox 360
7 | Xbox One
在新的表中,这是brands
表:
id | name
1 | Xbox
2 | Xbox 360
3 | Xbox One
4 | Playstation 1
5 | Playstation 2
6 | Playstation 3
7 | Playstation 4
在实践中,场景更复杂,但我给出的例子很好。所以,还有一个products
表:
id | name | brand_id | created_at | updated_at
我想将旧数据库中的产品导入到新数据库中,但是如您所见,id
的品牌不匹配。然后,我想做这样的事情:
brand_id 1 on old_database == brand_id 4 on new_database
更具体地说,是一种字典 没有ifs
。
这就是我所做的:
if query.brand == 1
brand_id == 4
elsif query.brand == 2
brand_id = 5
end
但这不是我真正想要的。是的,它有效,但我想做一些更简单的事情。我认为哈希正是我正在寻找的。有什么建议吗?
答案 0 :(得分:3)
您可以声明这样的哈希:
brand_map = {1 => 4, 2 => 5} # add other entries as needed
然后像这样查找新的id:
brand_id = brand_map[1]
=> 4
答案 1 :(得分:1)
是的,似乎哈希就是你想要的。例如,
id_map = { 1=>4, 2=>5, ... } # old id => new id
然后记录id, name
,将其作为id_map(id), name
写入新数据库。