2011-07-30 8 views
0

を意味のRails 3:「一意索引列を持つモデルは、」正確に

「一意索引列を持つモデルは、」これは、列に一意の検証とちょうどモデルと列を何を意味するのでしょうか?または、移行で列にadd_indexが必要であることを意味しますか?

そして、add_indexを作成することがどういう意味なのか説明できますか?たとえば、名前列を持つAuthorsモデルがある場合などです。 「名前」にインデックスを追加すると何が達成されますか?

ありがとうございました。

+0

は、あなたが「一意索引列を持つモデル」にいくつかのコンテキストを与えることができますか?あなたはそのフレーズをどこで見ますか? –

+0

かなり曖昧な - 私は多くの人がユニークな制約を意味するためにそのフレーズを使用すると思う - 単に列が一意でなければならないことを意味する – Randy

+0

それは 'シンプルなモデル'の上のfriendly_idガイド、http://norman.github.com/friendly_id /file.Guide.html –

答えて

0

モデルには一意であることが保証されており、インデックスが付いていることが保証されています。私はあなたが一般的にRailsのモデルについて読んでいると思います。

一意の列とは、User1とUser2などの2つのモデルがその列に同じ値を持つことができないことを意味します。たとえば、ユーザーは固有のログインを持ちます。同じログイン(またはユーザー名または電子メール)を持つ2人のユーザーは存在しません。しかし、Railsは自動的にモデルに常に一意のID列を与えます。あなたがそれを変更しない限り、最初のレコードはID 1、次に2、3などを持ちます。

インデックスは、その列を見つける方が簡単です。百科事典を考える。そこには多くの情報がありますが、索引のような付録はあなたが探しているものをすばやく見つけるのに役立ちます。主要な用語の付録があるかもしれないし、それはすぐにそれを見つける場所を教えてくれるでしょう。これが列のインデックスです。

デフォルトでは、Railsの「一意索引列を持つモデル」はID列です。索引は一意であり、自動的に索引を取得してレコードをより迅速に検索します。

追加:外部キーを持つモデルを作成すると(モデルユーザーにはgender_idがあり、男性と女性を定義するGenderというテーブルがあり、gender_idはGenderオブジェクトに対応します)その外部キーにインデックスを追加して検索を高速化する必要があります。

詳細情報:http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_index

関連する問題