Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.)

share|improve this question
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? – Jon Strayer Mar 30 '12 at 16:45
@JonStrayer yes (potentially) and they each have an identifier and a label – d3vid May 7 '12 at 3:51

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

share|improve this answer

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

share|improve this answer

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

share|improve this answer

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).

share|improve this answer

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..

share|improve this answer

Your Answer


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.