1

I'm wondering if there is a any standardised terminology surrounding the following concept so I can try and research some best practices... here we go

In my current place of work on our database we have what we refer to internally as 'validation groups and codes'. A typical example of their use would be for select lists on forms.

We have a group e.g. 'Employment status' then the entries associated with that group:

  • Full time
  • Part time
  • Self employed
  • Retired
  • Unemployed
  • Student
  • Long term sick leave

DB would look like this

Validation_group

ID (PK), description (String)

Validation_code

ID (PK), description (String), group (FK), enabled (Bool)

We have hundreds of these groups in our system. We usually use them for storing data which needs to be in the DB but doesn't in and of itself warrant its own data structure. This allows us or our clients to add or remove to the data sets or configure them as necessary, e.g. disabling entries or renaming them.

More complicated systems may allow for a parent child relationship between codes and groups allowing subgroups within certain categories. This closest terminology I have seen widely used is an enum in java for example but I think what I'm talking about differs somewhat..

Is there any standardised terminology surrounding this concept?

  • This is a matter between you and your project team. The general question often falls into "Information Engineering", but it could also be a branch of library science. – BobDalgleish Dec 25 '17 at 21:51
  • 1
    It's essentially a "lookup table," albeit one that covers all entities. Were you looking for something more specific? For what purpose will this terminology be used? – Robert Harvey Dec 25 '17 at 22:30
  • What you describe is a pick list. But this is a UI/user oriented definition. Depending on your perspective and abstraction level you may come up with other names. Considering your apparent problem domain (personal data) and the usage scenario (a person providing it), pick list items would be an appropriate qualification. – Martin Maat Dec 26 '17 at 8:05
  • I want to get a better understanding of this topic for a personal project, however the example from my workplace was the best I could think of. So I guess the question is a little abstract but I'm more interested in the concept from a the data modeling side than what is shown in the view. I just want to establish a base definition to research the topic further and see some other example implementations of this sort of thing. – Suipaste Dec 26 '17 at 13:02
  • Have a look here:en.wikipedia.org/wiki/… – Robert Harvey Dec 27 '17 at 0:32
1

Good search terms could be controlled vocabulary, data dictionary, pick list, lookup table, validation table, value lists - all those are more or less (enumerated and/or coded) value domain implementations. (see also data domain and metadata code)

Here we deal (as usual) with the concept and it's implementation. The essence is a "value domain" - "“Enumerated value domain” is a value domain that is specified by a list of all its permissible values." From the oecd.org glossary, mentioning ISO 11179 - Information Technology -- Metadata registries (MDR).

See also relevant question/answers: https://stackoverflow.com/questions/12250679/finding-the-right-terminology-for-a-dictionary-table

Of course, you are free to choose terminology, suitable to your project / industry / whatever ubiquitous language your project is using.

Also SQL Antipatterns book has a whole chapter called "31 Flavors" on the topic (they call the thing "lookup table"), where one opinion is present on how to do or not to do this subject.

  • Cheers! I see that there are many approaches to this. Lookup table has other computing definitions so it's not a great search term but pick list has been fruitful. I'll have a good look through. – Suipaste Dec 28 '17 at 10:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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