2016-09-06 12 views
0

私は既存のデータベースに接続して、管理のための簡単な足場を作っています。彼らが使用した命名規則はtable_idです。だから私は "id"から "customer_id"にデフォルトの主キーを変更する必要があります。私はまた、すべての線を再結線しなくても、この変更でレール足場を使用できることを期待しています。Rails 4 - 主キーの名前を変更

答えて

0

実際、あなたはそれをしたくありません。

同上のレールにあなたは外部キーを使用して、

貸衣装のhas_manyのような何かを言うことができる、唯一のデータベースのためのものである:XXX と XXXのbelongs_toの:貸衣装あなたはあなたに、1-

をデータベース上のn関係は、XXXが存在する必要があることを意味します。

なぜあなたはそれを変更したくないのですか?あなたのデータベースはその変更後の行動の仕方(もし可能であれば)を知りませんし、IDなしであなたの新しい足場のアイテムをどうやって検索しますか? IDは、貸衣装ID

あるので、あなたは、外部キーを与える方法click here

+0

参照する列「id」がない場合は、レコードの更新は失敗します。私が接続しているデータベースは、customer_idを主キーとして持っています。 id = 45のためにレールの更新または破壊を実行すると、レコードが見つかりません。 – Atari2600

+0

あなたは解決策としてデータベースに塊を追加できます[こちらをチェック](http://guides.rubyonrails.org/active_record_migrations.html#highlighter_783751)。あなたはexaclyに答えるために私はexaclyレールデータベースの仕組みを知らないのですが、私はノーと思いますが、私はあなたにそれを混乱させることは勧めません。 IDで見つけても問題が起きる可能性があります。あなたは想像できますか? *何か* find_by(id = costumer_id)あなたがコスチューム以外で何かを検索していたら?異なるものを表す2つのテーブルに同じIDを使用しています..うーん..ちょっと面倒な –

+0

例..あなたはすべてのcostumerに製品を持っていると言うことができます。 products.costumer_id? foreget keyとしてこのcostumer_idを使用してみませんか?どのようにそれらの製品を保管しますか?注文しますか?詳細を検索するcostumer_idはあなたの製品テーブルの完璧な順序ではありません。つまり、あなたの製品には(例えば)costumer_id 3、それからあなたの2番目の製品はcostumer_id 1になります。つまり、あなたのテーブルはあなたが1000の製品を持っている場合、あなたが想像することができます注文IDの で見つけるためにする必要がありますか? IDは1〜1000ではないのですか? –

関連する問題