/ / पटरियों 3 में कई कॉलमों द्वारा पंक्तियों की कुशल छँटाई - रूबी-ऑन-रेल्स, रूबी-ऑन-रेल्स -3

रेल 3 में कई कॉलम द्वारा पंक्तियों की कुशल छँटाई

मेरे पास निम्नलिखित स्तंभों के साथ एक तालिका नाम लेनदेन है

created_at        | debit | credit | balance | account_id
2012-2-2 02:22:22 | 3000  | 0      | 0       | 8
2012-2-2 07:22:22 | 500   | 1000   | 0       | 8
2012-2-2 09:22:22 | 0     | 8000   | 0       | 8

2012-3-3 19:17:20 | 1000  | 0      | 0       | 8
2012-3-3 04:02:22 | 0     | 8000   | 0       | 8

संतुलन की गणना करने से पहले मुझे आवश्यकता है

  • दिनांक के अनुसार (जैसे दैनिक) लेनदेन
  • फिर डेबिट द्वारा क्रमबद्ध करें (उच्च डेबिट पहले आना चाहिए)

मेरे पास एक लाख लेन-देन है जो account_id द्वारा प्रतिष्ठित है। ऐसे परिदृश्य में छँटाई का कुशल तरीका क्या है?

किसी भी उत्तर की सराहना की जाएगी।

उत्तर:

जवाब के लिए 2 № 1

यह बहुत अच्छा लगता है यह प्रश्न

Transaction.all(:order => "created_at DESC, debit DESC")

इस तरह की क्वेरी वास्तव में क्या संबंधपरक डेटाबेस अच्छे हैं और उचित अनुक्रमण के साथ, यह आपके लिए कुशल होना चाहिए।

किसी विशेष खाते के लिए ...

Transaction.find_by_account_id(some_id, :order => "created_at DESC, debit DESC")

यदि यह खाते पर एक उचित ActiveRecord एसोसिएशन के रूप में सेटअप है, तो आप ऑर्डर सेट कर सकते हैं ताकि एसोसिएशन हमेशा पसंदीदा स्थान पर वापस आ जाए:

class Account
has_many :transactions, :order => "created_at DESC, debit DESC"
end

इस तरह, किसी भी समय आप इसके लेनदेन के लिए एक खाते की तरह पूछते हैं Account.find(12345).transactions वे "स्वचालित रूप से पसंदीदा सॉर्टिंग में वापस आ जाएंगे।"