Estoy usando Rails y MySQL, y tengo una pregunta de eficiencia basada en el conteo de filas.¿Está el almacenamiento de recuentos de registros de bases de datos redundantes?
Tengo un modelo Project
que has_many :donations
.
Quiero contar el número de donantes únicos para un proyecto.
Está teniendo un campo en la tabla projects
llamado num_donors
, y aumentarlo cuando se crea un nuevo donante, ¿es una buena idea?
O algo así como @num_donors = Donor.count(:select => 'DISTINCT user_id')
va a ser similar o lo mismo en términos de eficiencia gracias a la optimización de la base de datos? ¿Esto me requerirá crear índices para user_id
y cualquier otro campo que quiera contar?
¿Tiene la misma respuesta para sumar la cantidad total donada?
Me encanta la máxima: no la había escuchado antes. Lo tendré en cuenta :) – nfm