У меня есть база данных с 6500 players
и у каждого игрока в среднем 15 игр results
.
Вариант использования
Я хочу создать список игроков, упорядоченный по сумме их призовых денег (поле в таблице результатов ). Я предпочитаю, чтобы это было в какой-то области, поэтому я также могу отфильтровать список по стране игрока и т. д.
Производительность
Я видел сообщения, в которых упоминается поле cache_counter
для повышения производительности. В моем случае у меня тысячи записей результатов (75.000+)поэтому я не хочу, чтобы вычисления выполнялись каждый раз, когда кто-то посещает сгенерированные списки.
Вопрос
Каков наилучший шаблон для решения этой проблемы? И как мне это реализовать?
Модели
class Player < ActiveRecord::Base
has_many :results
end
class Result < ActiveRecord::Base
belongs_to :player
end
Схемы
create_table "players", :force => true do |t|
t.string "name"
t.string "nationality"
end
create_table "results", :force => true do |t|
t.integer "player_id"
t.date "event_date"
t.integer "place"
t.integer "prize"
end
Обновление
Чего я пытаюсь достичь, так это добраться до точки, где я могу использовать:
@players = Player.order_by_prize
и
@players = Player.filter_by_country('USA').order_by_prize('desc')