正規化のメリットを無視した作業をしたよ
チラシの裏
リレーショナルデータベースの正規化のメリットを無視した作業をした時のメモなのです。
ある日のデータ移行後、マスタのリレーションIDも変わっていました。
old master
id | name |
---|---|
1 | A |
2 | B |
3 | C |
new master
id | name |
---|---|
1 | C |
2 | A |
3 | B |
こんな感じに。
newマスタのレコードはすでに運用中なので、nameの値を変更することは厳しいです。
なので、移行したローデータのIDを修正することにしました。
update hoge set id = new_id * 100 where id = old_id; update hoge set id = new_id * 100 where id = old_id; …
new_id * 100のIDで更新。こうしないと、古いIDと新しいIDが混じってしまう可能性があります。
update hoge set id = id / 100;
で新しいIDに更新。
ちょっと、めんどくさかったです。