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