I'd strongly urge not to reinvent the wheel but take
Lars Pinds rating system.
It would need some cleanup especially in regards to documentation as well as support for multiple rating-dimensions, though Lars might correct me and say I'm completely blind (I did not even detect the pinds-ratings DDL).