首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3中按多列对行的有效排序

Rails 3中按多列对行的有效排序
EN

Stack Overflow用户
提问于 2012-12-28 11:30:33
回答 1查看 2.4K关注 0票数 2

我有一个具有下列列的表名事务

代码语言:javascript
复制
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

在计算余额之前,我需要

  • 按日期(即每日)对交易进行排序
  • 然后按借方排序(较高的借方必须优先)

我有100万个事务由account_id来区分。在这种情况下,什么是有效的排序方法?

如有任何答复,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-28 14:21:53

这听起来很像this question

代码语言:javascript
复制
Transaction.all(:order => "created_at DESC, debit DESC")

这种查询正是关系数据库所擅长的,并且有了适当的索引,对您来说应该是有效的。

对于特定帐户…

代码语言:javascript
复制
Transaction.find_by_account_id(some_id, :order => "created_at DESC, debit DESC")

如果将此设置为帐户上的适当ActiveRecord关联,则可以在那里设置订单,以便始终以首选的顺序返回关联:

代码语言:javascript
复制
class Account
    has_many :transactions, :order => "created_at DESC, debit DESC"
end

这样,任何时候,当您要求一个帐户的事务,如Account.find(12345).transactions,他们将返回在首选排序自动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14068836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档