Вы можете связать песню с моделью голосования, которая будет связана с моделью пользователя. Например, модель голосования может иметь логическую колонку типа «нравится» и «не нравится». Таким образом, вы можете зарегистрировать голосование «за» или «против» для каждого пользователя в каждой песне.
Возможно, во всех этих таблицах может быть много строк, но я не понимаю, что вы имеете в виду под "перегружаться". Пока структура ясна, не имеет значения, сколько у вас там данных, для этого и нужна база данных, нет?
class User < ActiveRecord::Base
has_many :votes
end
class Vote < ActiveRecord::Base
belongs_to :user
belongs_to :song
end
class Song < ActiveRecord::Base
has_many :votes
end