I need to refer to a number of things that have both an identifier value (used in code and configuration), and a human-readable label. These things include:

  • database columns
  • dropdown items
  • subapplications
  • objects stored in a dictionary

I want two unambiguous terms. One to refer to the identifier/value/key. One to refer to the label.

As you can see, I'm pretty settled on the latter :) For the former, identifier seems best (not everything is strictly a key, and value and name could refer to the label; although, identifier usually refers only to a variable name), but I would prefer to follow an established practice if there is one.

Is there an established term for this? (Please provide a source.) If not, are there any examples of a choice from a significant source (Java APIs, MSDN, a big FLOSS project)?

(I wasn't sure if this should be posted here or to English Language & Usage. I thought this was the more appropriate expert audience. Happy to migrate if not.)

  • Are there three things here? The name of the column the data comes from (for example) the label you use on the user interface and the data itself? Mar 30, 2012 at 16:45
  • @JonStrayer yes (potentially) and they each have an identifier and a label
    – lofidevops
    May 7, 2012 at 3:51

5 Answers 5


Such things are usually called "opaque identifiers". The have no intrinsic meaning (e.g., they're not the next monotonically-increasing integer value of some database column), you cannot expect to perform any operation on them other than mapping to the label and the object itself (e.g., you can't concatenate it with something to get something else), etc..


I'd go with id, both as the term most commonly used (in my experience) and as a personal preference.


I would favour Identity over Identifier. The identifier is the value of the identity, if that makes sense.


A commonly used term is Name-value pair. The name part being the identifier and value being what you refer to as label.


Technically, I would suggest it is a key, value pair. "Key" is the common term when describing the unique identifiers in associative arrays such as in Java's Map class, and is also what can uniquely identify a row in a database relation.

"Key" is also the familiar term when discussing decoding thins--when you see this, it means that...

The problem you can run into with "name" is that it implies something meaningful--especially when you are describing people or other things that explicitly have "names" (but which aren't necessarily useful as unique identifiers or keys).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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