До сих пор поступал именно описанным в вопросе «классическим» способом.
Но для nosql архитектуры, с которой только знакомлюсь на основе Amazon SDB, можно прямо в записи сущности собирать id проголосовавших пользователей. Работает для малого числа голосов за одну сущность — для примера с харбракомментариями. Для +\- варианта придётся в два поля видимо писать id: кто минусует, и кто плюсует. Либо изобретать синтакс типа id+5
или id-3
для +5
или -3
баллов соотв.
Хорошо бы представлять себе реальное использование этих баллов, и предполагаемые рамки использования.