Я использую Rails и MySQL, и у меня есть вопрос эффективности, основанный на подсчете строк.
У меня есть модель Project
, которая has_many :donations
.
Я хочу подсчитать количество уникальных доноров для проекта.
Имеет ли в таблице projects
поле с именем num_donors
и увеличивает его при создании нового донора - хорошая идея?
Или что-то вроде @num_donors = Donor.count(:select => 'DISTINCT user_id')
будет аналогичным или таким же с точки зрения эффективности благодаря оптимизации базы данных? Требуется ли для этого создание индексов для user_id
и любых других полей, которые я хочу считать?
Имеет ли место тот же ответ для суммирования общей суммы пожертвований?