I know that there is more than one way to do what I want. Can you (the community) help me decide the most efficient?

Goal:
To display the final calculated points standings of a racing club series with multiple classes (Honda Challenge 1, Honda Challenge 2, American Iron, German Touring 1, German Touring 2, etc...).

Current process and Drupal configuration I am using:

Content types:
Racer, Classes

Fields on each content type:

Racer->Name, Racer->race1points, Racer->race2points, Racer->race3points, Racer->race4points, Racer->race5points, Racer->race6points, etc...
Class->hc1, Class->hc2, Class->hc3, Class->hc4, Class->ai, Class->aix, Class->gts1, Class->gts2, Class->gts3, etc...

Views:
I created a view for each class that displays Driver Name, Points on each race, Calculated total of the sum of each driver's individual points, sort the driver in the class in descending order of the Calculated total.

QuickTabs:
I created a quicktab block that displays on a page within the $content with multiple tabs. Each tab loads its content from the previously created Views, one per class.

It all works perfect. It looks good and I can create additional views to display the content in many different ways if I need to. But....

The problem is that I am almost certain that there is a more efficient way of doing it all.

At first I thought of having the content entered in different content types, but I got stuck on how to related everything the way I needed to, thus, the solution I just described above. Initially, I wanted to have content types for Events, Drivers, Classes, Points. Then I was going to create each points entry making node references to the other content types. The problem is that if I did it that way, the only way I thought I could implement it was by creating a points entry per driver, per event. This would have created an insane amount of time to update the points after each event. Something like for 50 drivers on two races per weekend I would have had to create 100 node entries to update it all. One more problem was how to create the views to have the correct relationships between each node. Too complex for my current CCK/Views knowledge I guess.

If all that I have mentioned is clear, can you make suggestions on how to better approach this? You can also tell me if the method I implemented is equally, less, or more efficient than any other methods.

At the end, I want to give the interface to the "racing club" so they can enter the updates. One more thing... The process should be easily duplicated for the following year. I don't want to have to create everything from scratch again to do it for 2011, 2012, etc...

Your help is greatly appreciated in advence.

Thank you,

Rafael Santoni