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

rails:721

From: のりお <toykyo@t...>
Date: Sat, 03 Dec 2005 00:41:00 +0900
Subject: [rails:721] Re: ActiveRecordでのPrimaryKeyについて

 
 ぼくが答えられる範囲内でお話します。
 
 まず、プライマリキーの列名をデフォルト以外に設定する場合は
   class Shain < ActiveRecord::Base
      set_primary_key "shain_id"
    end
  
  のような感じで設定します。
  この場合、どうやらActiveRecordは自動でidを割り当てなく
  なるようなので、手動で指定することになります。
  
  試してはないですが、
    shain = Shain.new
    shain.id = "SHAIN-001"
    shain.name = "Taro Yamada"
    shain.save
  
  のように
    id = value
  で、手動で設定するみたいです。
  ここで注意することは
    shain.shain_id = "SHAIN-001"
  ではないということです。プライマリキーの名前をどうしようと
  必ず、「id」でプライマリキーの設定をしてください。
  
  ということで、お望み通り固定値でプライマリキーを
  扱えるみたいですけど・・・検討違いだったらすみません。
  関連付けについては、belongs_toとhas_manyで
  普通にできるんじゃないでしょうか。
  
  まだまだ、ruby&rails初心者なので、知ってる範囲で答えてみました。
  
  

>みなさん、はじめまして。菊池と申します。
>
>ActiveRecordを使用する際のプライマリーキーidについて
>お知恵をお貸しください。
>
>現在、RoRを使用して、とある業務システムを構築しようと
>しています。
>そのシステムは、多くのテーブルがあり、これらのアクセスに
>ActiveRecordを使用したいと考えています。
>
>ただ、ActiveRecordの仕様を見てみると、デフォルトは列名はidで、かつ
>int型のauto_incrementのようです。
>
>例えば、以下のようなTable構造がある時に、
>ActiveRecordを適用するには、どのようにすればよいでしょうか?
>
>// 社員テーブル
>create table shain (
>    shain_id        int primary key,  // 社員ID
>    busho_id       int,                    // 部署テーブルへのFK
>    shain_name   varchar(64),
>    ....
>   constraint abc forign key (busho_id) references busho(busho_id)
>)
>
>// 部署テーブル
>create table busho (
>    busho_id      int primary key,  //  部署ID
>    busho_name varchar(128),
>    ....
>)
>
>ちなみに、社員ID、部署IDは固定で決められていて、これをauto_incrementに
>してPrimary Keyに変更するのは、ちょっと無理です。
>
>つまり、PrimaryKeyとなるべき値は固定値で、かつ、それが外部キーによって
>他のテーブルと関係付けられる場合についての、ActiveRecordのアプローチに
>ついてお知恵をお貸しください。
>
>または、テーブルをこんな風に変更するとシステム要件もActiveRecordの仕様にも
>合うとかでも結構です。
>
>以上よろしくお願い致します。
>
>--
>ML: rails@r...
>使い方: http://QuickML.com/
>Web Site: http://wiki.fdiary.net/rails/
>ML Archives: http://www.fdiary.net/ml/rails/


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