Having a version attribute would imply many many copies of each version string stored in the database, one with each review. I think this could work if there isn't a list of available versions we can check, and we just need to believe the user when a vote is submitted about what version they're reviewing, but even then we could create a new SoftwareRelease (per ascii art above) on demand if somebody submits a review for a version we didn't have so far.
Having a version attribute would imply many many copies of each version string stored in the database, one with each review. I think this could work if there isn't a list of available versions we can check, and we just need to believe the user when a vote is submitted about what version they're reviewing, but even then we could create a new SoftwareRelease (per ascii art above) on demand if somebody submits a review for a version we didn't have so far.