sql >> Databasteknik >  >> RDS >> Mysql

När ska man lägga till vad som indexerar i en tabell i Rails

Det skulle vara bättre, eftersom det påskyndar sökningen vid sortering i den här kolumnen. Och främmande nycklar är något man letar efter mycket.

Sedan version 5 av rails kommer indexet att skapas automatiskt, för mer information se här .

Nej, detta görs redan med räls

Nej, samma som ovan

Då är indexet ett kombinerat index av de två kolumnerna. Det är inte meningsfullt, om du inte vill ha alla poster för ett category_id OCH ett state_id (Det ska vara category_id inte category ) samtidigt.

Ett index som detta skulle påskynda följande begäran:

# rails 2
User.find(:all, :conditions => { :state_id => some_id, :category_id => some_other_id })

# rails 3
User.where(:state_id => some_id, :category_id => some_other_id)

Var

add_index :users, :category_id
add_index :users, :state_id

kommer att påskynda dessa förfrågningar:

# rails 2+3
User.find_by_category_id(some_id)
User.find_by_state_id(some_other_id)

# or
# rails 2
User.find(:all, :conditions => {:category_id => some_id})
User.find(:all, :conditions => {:state_id => some_other_id})

# rails 3
User.where(:category_id => some_id)
User.where(:state_id => some_other_id)

Nej, för om du gör detta kan bara en användare vara i en kategori, men meningen med kategori är att du kan lägga till fler många användare i en kategori. I din User modell du har något sånt här belongs_to :category och i din kategorimodell något som has_many :users . Om du har en has_many relation foreign_key fältet får inte vara unikt!

För mer detaljerad information om detta bör du ta en titt på tadman är fantastiskt svara .



  1. Hur man Mysql JDBC-drivrutin till android studio

  2. Postgres Alter Kolumn Heltal till Boolean

  3. Vilket är det mest rekommenderade sättet att lagra tid i PostgreSQL med Java?

  4. Vad är INTE logisk operatör i SQL Server - SQL Server / TSQL Tutorial Del 121