[前][次][番号順一覧][スレッド一覧]

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...         ]