Greetings,
Disclaimer: I just want to open a "meta" discussion (you can take it as a food for thought) and not pretending to change everything by breaking the current DB design.
I have been studying the 1.3.x database design for a while and it came to my mind that submissions, submission_results, user_tests and user_test_results are pretty much the same. I am aware that the submissions are associated with test_cases and those need some scoring values, after it gets evaluated; but what if we take out the scoring related columns to a single table (let's say "scorings") and move out the test_case association to it, in that way you should be able to merge submissions with users_tests (therefore their _results as well) , hopefully that should simplify the DB schema and the associated models and any future scoring query.
What do you think?