Standard Way of Storing Names in a Database

Sometimes you only think you know your requirements. The book publishing industry has an information standard called ONIX that uses the following. It's interesting to note that First and Middle names are combined into one field.

  • Titles before names (ex: Professor, HRH Prince, Saint)
  • Names before key names (first names and/or middle initials - ex: Brendan J. E.)
  • Prefix to key names (ex: van, as in Ludwig van Beethoven)
  • Key name (last name)
  • Names after key names (ex: Ibrahim as in Anwar Ibrahim)
  • Suffix to key names (ex: Jr, III)
  • Qualifications and honors after key names (ex: MB, PhD)
  • Titles after names (ex: Duke of Edinburgh)

Best to use a single full name field.

See: https://www.w3.org/International/questions/qa-personal-names

Names are culturally determined, so don't be blinded by your own culture.


The standard way is to look at your requirements, and store the data required. While this is an interesting academic problem, the truth is, in the dozens of systems I've worked on, first and last name is usually sufficient. Sometimes we will store a middle initial, but most of the time even that isn't required.

If you have a requirement to store all of Dr. John Quintus Maximus Public-Doe III Ph.D. MD. RPh's information, then you devise storage for that. But as long as your last name allows for enough data, then Dr. Maximus can type as much or as little as he would like to be stored about his name and titles.


I prefer AD naming style

First Name  givenName
Last Name   sn
Initials    initials
Display Name    displayName
Description description
Office  physicalDeliveryOfficeName
Telephone Number    telephoneNumber
Telephone: Other    otherTelephone
E-Mail  mail
Web Page    wWWHomePage
Web Page: Other url