Domas loves to hate.
I hate just chronic whiners, who start calling you idiot after you misspell
their name or leave weeping after minor criticism, but to not limit
criticism they emit themselves. I do not have issues with other people ;-)
To stay on topic - we might want eventually to put covering index for all
contributions-based operations, but still, for this operation we may want to
keep a separate table (and do that for most queries, that need aggregation).
For different traversing methods covering indexes are way to go.