Raylar bir tablo ne bir dizin eklemek için zaman
Raylar veritabanı ile ilgili bir sorum var.
- Ben add "" tüm yabancı anahtarlar gibi""? xxx_id dizin olmalıdır
- "" Otomatik olarak oluşturulan "" sütun? id dizin eklemek gerekir mi
"Dizin(Özel)" için otomatik olarak oluşturulan "" sütun? id ekleyeyim
(
add_index (:users, [:category, :state_id])
, Ne Olur? bir kere de dizin için iki yabancı anahtarları eklersem Nasıl her anahtar dizini ekleyerek bu farklı mı?class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :name t.integer :category_id t.integer :state_id t.string :email t.boolean :activated t.timestamps end # Do I need this? Is it meaningless to add the index to the primary key? # If so, do I need :unique => true ? add_index :users, :id # I don't think I need ":unique => true here", right? add_index :users, :category_id # Should I need this? add_index :users, :state_id # Should I need this? # Are the above the same as the following? add_index (:users, [:category, :state_id]) end end
Harika bir cevap ÅŸu ana kadar. Ek soru.
- ""Xxx_id, deÄŸil mi? dizin ile benzersiz eklemeliyim
CEVAP
Ben add "" tüm yabancı anahtarlar gibi""? xxx_id dizin olmalıdır
Bu sütunda sıralama arama işlemini hızlandırır çünkü, daha iyi olurdu. Ve Yabancı anahtarlar bir şey aranır.
"" Otomatik olarak oluşturulan "" sütun? id dizin eklemek gerekir mi
Hayır, Bu zaten raylar tarafından yapılır
"Dizin(Özel)" için otomatik olarak oluşturulan "" sütun? id ekleyeyim
Hayır, yukarıdaki gibi
(
add_index (:users, [:category_id, :state_id])
, ne olur? bir kere de dizin için iki yabancı anahtarları eklersem Nasıl her anahtar dizini ekleyerek bu farklı mı?
Sonra endeks iki sütun birleştirilmiş bir göstergesidir. 7 ** biri için tüm kayıtlar istediğiniz sürece herhangi bir anlam ifade etmiyorVE8 ** (category_id
category
olması gerekir) aynı zamanda.
Bir Dizin bu aşağıdaki istek hızlandıracak gibi
# 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)
Nerede
add_index :users, :category_id
add_index :users, :state_id
bu istekleri hızlandırır:
# 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)
""Xxx_id, deÄŸil mi? dizin ile benzersiz eklemeliyim
Eğer bunu yaparsanız hayır, yalnızca bir kullanıcı bir kategori olabilir, ama kategori anlamını daha fazla koyabilirsinizbirçokbir kategori içine kullanıcı. User
model belongs_to :category
Kategori modelinizi has_many :users
gibi bir şey böyle bir şey var. Eğer has_many
bir iliÅŸkiniz varsa foreign_key
alanında benzersiz olmalıdır!
tadmanharika answer. bir göz atmalısınız bu konuda daha ayrıntılı bilgi için
Nasıl bir MySQL tablo için bir dizin e...
Nasıl raylar zaman geçerli 10 gün ekle...
SQL Server Management Studio't ka...
Ne kadar çok uzun dizin adları işlemek...
Ne N saniye datetime eklemek için stan...