退職することを記録したいなら、退職テーブル作ればいいんじゃないでしょうか。これで社員テーブルからそのデータは消せます。おらん奴はいらんねん。
usersテーブルで状態が変わったレコードをusers_archiveにコピーしてusersテーブルから削除する。ほんとにそれでいいのか?
SELECT * FROM some_data JOIN users ON users.user_id = some_data.user_id UNION SELECT * FROM some_data JOIN users_archive ON users_archive.user_id = some_data.user_id
ってやる必要あるよね。
それと、some_data.user_idの外部参照制約が付けられない。
CREATE VIEW users_view as SELECT * FROM users UNION SELECT * FROM users_archive
作るからいいもん、とか思ってるのか?
そんなの作っても、
で、usersを参照するのかusers_archiveを参照するのかusers_viewを参照するのか切り分ける必要がでてくる。
それにこのやり方だと、users_viewみたいなviewが氾濫しかねない。
素直にusersにfrom, to入れとけ。
CREATE VIEWした時に結合した表の中に退職者フラグとか存命者フラグとか入れておけばええねん。