rails:745
From: そめえだ <someeda@g...>
Date: Mon, 5 Dec 2005 21:46:03 +0900
Subject: [rails:745] Re: ActiveRecordでのPrimaryKeyについて
> このような感じでしょうか? > もしOkでしたら、実はこのようにしたいと思っていました。 そんな感じだと思います。 やはりこうしたいと思いますよね。> 菊池さん > お伝えしていなかったのですが、今回のシステム仕様では、 > 上記2つのテーブルを定期的に全削除して、全登録するという > 運用があります。こうしてしまうとidの部分がauto incrementされてしまい > テーブル間の関係が崩れてしまうと危惧しています。 #検索のためのテンポラリデータベースみたいな感じでしょうか。 ちょっと実験してみました。 全削除後に一件づつ insert する時に、create を使うと、id を指定しても auto incrementされてしまいますね。 しかし new して作成したインスタンスに id を指定して save すると id がちゃんと反映されました。 こういった挙動でしたので、後者の方法で全て id を指定して insert し 後で DB の auto increment カウンターを適切に設定してはどうでしょう。 解決のポイントとしては、データのリレーション関係が保存されていれば良い と思いますので。それさえしっかりしていればいろんな方法がありそうですね。 例えばですが、社員テーブルにデータダンプ時にのみ使用する 部署コードフィールドを作っておきます。普段はこれは使いません。 仮にこれを shain.busho_code なんていう名前にしましょう。 データを全削除する時に、このフィールドにbusho_codeを転記しておき、 次に全登録する時にはこんな手順でしょうか。 ・部署テーブルをまず登録。新しいIDが確定する。 ・社員テーブルを、転記した busho_code を手がかりに新しいID を shain.busho_id に登録。 思いつきで書いてしまいましたが、実際はダンプしたデータを見れば shain.busho_code なんてテンポラリ的なフィールドは不要ですので。 実際にどうするかは、全削除してから再構築するまでに何が起こるのか によって決まってくる気がします。 -- --------------------------- そめえだ http://someeda.mydns.jp/blog/ someeda@g... -- ML: rails@r... 使い方: http://QuickML.com/ Web Site: http://wiki.fdiary.net/rails/ ML Archives: http://www.fdiary.net/ml/rails/
720 2005-12-02 12:14 [gungle@g... ] ActiveRecordでのPrimaryKeyについて 721 2005-12-02 16:41 ┣[toykyo@t... ] 722 2005-12-02 16:44 ┗[gollum@h... ] 728 2005-12-04 05:20 ┗[gungle@g... ] 743 2005-12-05 10:04 ┗[someeda@g... ] 744 2005-12-05 11:37 ┗[gungle@g... ] -> 745 2005-12-05 13:46 ┗[someeda@g... ] 750 2005-12-06 13:42 ┗[gungle@g... ]