यह बेहतर होगा, क्योंकि यह इस कॉलम में छँटाई में खोज को तेज करता है। और विदेशी कुंजियाँ बहुत कुछ खोजी जाती हैं।
चूंकि रेल के संस्करण 5 में सूचकांक स्वचालित रूप से बनाया जाएगा, अधिक जानकारी के लिए देखें यहां ए> ।
नहीं, यह पहले से ही रेल द्वारा किया जा चुका है
नहीं, ऊपर जैसा ही है
फिर सूचकांक दो स्तंभों का संयुक्त सूचकांक है। इसका कोई मतलब नहीं है, जब तक कि आप एक category_id
. के लिए सभी प्रविष्टियां नहीं चाहते हैं और एक state_id
(यह category_id
होना चाहिए नहीं category
) उसी समय।
इस तरह का एक सूचकांक निम्नलिखित अनुरोध को गति देगा:
# 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)
कहां
add_index :users, :category_id
add_index :users, :state_id
इन अनुरोधों को गति देगा:
# 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)
नहीं, क्योंकि यदि आप ऐसा करते हैं, तो केवल एक उपयोगकर्ता एक श्रेणी में हो सकता है, लेकिन श्रेणी का अर्थ यह है कि आप अधिक कई डाल सकते हैं एक श्रेणी में उपयोगकर्ता। आपके User
. में मॉडल आपके पास कुछ इस तरह है belongs_to :category
और आपके श्रेणी मॉडल में has_many :users
. जैसा कुछ है . अगर आपके पास has_many
है foreign_key
से संबंध बनाएं फ़ील्ड अद्वितीय नहीं होना चाहिए!
इस पर अधिक विस्तृत जानकारी के लिए आपको tadman पर एक नज़र डालनी चाहिए। बहुत अच्छा है ">उत्तर ।