the previous post describes what can be restated as a problem of
how best to create a human-browsable index?
a useful index is one that:
-is organized/sorted to facilitate quick lookups
-has short index terms [keys]
-has non-ambigious index terms
-has unique index terms
one solution to solve the problem entails creating a sort of proxy code for each training that combines something from the program type, the organization, and the training tables.
for instance, RW-MAH-2002 would stand for “Regional Workshop at Mahidol University in 2002.”
if the information sought was known in advance, the index could be navigated quicky to find the appropriate record.
on the otherhand, if only part of the sought after information was known, a little about what the composite index means could be inferred from its structure, allowing the user to learn quickly and browse intelligently–skipping irrelevant records.
the problem with this solution is that the composite proxy index does not include any piece of information from the program table. (though the available data shows no such cases, it is conceivable that there may be more than one regional workshop in Mahidol in 2002, thus RW-MAH-2002 ceases to be unique).
using some sort of incremental notation might suffice: RW1-MAH-2002, RW2-MAH-2002, except that incremental notation is essentially random, and forces the unacquainted user to browse several records before settling on the training they intended.
the optimal solution would involve creating a program abbreviation or acronym that would differentiate one workshop from another of the same type at the same place. this adds a bit of complexity as the program abbreviation would have to be unique from other programs that have the same type and organization.
here frequency must be balanced with usability. if the cases where conflict exists are so infrequent, the burden of an incremental conflict avoidance solution is much less than requiring program abbrevations in all (or worse, some) cases, especially for hard to abbreviate programs like “evaluating the impact of population, health and nutrition programs.”