18

私のアプリケーションでは、ユーザーが場所をキー入力することはできませんが、データベース内の都市に一意性を適用したいと考えていました。私のRailsアプリは都市の列で検索するので、都市の列にもインデックスを追加したいのですが、インデックスにもunique: trueを追加することが重要かどうか疑問に思っていました. これは繰り返しですか?これで意味がわからない場合は、理由を説明していただければ幸いです。

class CreateLocations < ActiveRecord::Migration
  def change
    create_table :locations do |t|
      t.string :city, unique: true
      t.string :state

      t.timestamps
    end

    add_index :locations, :city, unique: true
  end
end
4

4 に答える 4

13

私の知る限りunique、ブロック内のオプションcreate_tableは実際にはサポートされておらず、何もしません。 TableDefinitionを参照してください。一意のインデックスを作成するには、add_index現在行っている方法でメソッドを呼び出す必要があります。一意のインデックスは、一意性と検索などの両方のためのものであることに注意してください。同じ列に 2 つのインデックスを追加する必要はありません。

于 2013-01-31T10:10:31.700 に答える