Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm working on a WordPress plugin to manage rock climbing data, and I need to think of a way to store rock climbing grades from all of the different systems in a unified way. There are many different systems, all of which have some numerical system.

A comparison of all the systems: http://en.wikipedia.org/wiki/Grade_(climbing)#Comparison_tables

Is there some unified way that I can store and analyze these, or do I just need to assign numbers to them all and call it a day? My current plan is to save the score type and then assign each score a numerical value, which I can then use to compare and graph them.

share|improve this question

2 Answers 2

up vote 4 down vote accepted

If you can be certain that grades in the different systems are exactly equivalent, then you can of course come up with a table that lets you convert from one grade to another. That seems unlikely, though -- the Wikipedia article you linked says:

no two grading systems have an exact one-to-one correspondence

So it seems like you should just go ahead and store whatever grade or grades have been assigned to a given route. You can still use a table to convert each grade to some sort of common scale for the purposes of comparison and graphing, but I wouldn't try to be too precise about it. From my own experience, I agree with the article that grading is pretty subjective. Climbers come in different shapes and sizes and have different approaches to climbing, so two people may not agree on the relative difficulty of routes.

share|improve this answer

In short, your plan seems pretty sound.

For something like this you should always store data in a way which doesn't lose any of the original information. In this case, that would be (1) the grading system used and (2) the grade within that system. If you've stored the data in a non-lossy way, you can change how it's interpreted later on.

As soon as you optimise away some of the original data, you lose the ability to do that. For example, you decide to create a unified grade in which a Finnish '5' is the same as a French '4b'. Later, you decide that they ought to be treated as '4c's instead. Unless you've stored the original grading system used, there's no way for you to go through and change just the routes which were graded with the Finnish system.

Another thing to think about: for various reasons you'll sometimes get routes with more than one grade. You might want to think about being able to store more than one grade per route, perhaps with a note explaining the reasoning/conditions for each grade.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.