Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DB Design Question - Storing International People Names

I understand that the FirstName LastName "problem" is a frequent complaint of people who use websites designed by Americans. What do you think is a better system that will suit more countries? What fields would you recommend using to store the various ways that a name might need to be accessed, understood, or displayed?

Depending on what the system is for I would propose the following fields based on the US idea of FirstName MiddleName and LastName. Middle names are almost unused in the US but most people have one. It can help differentiate between the many people who share the same combination FirstName LastName.

FirstName   : George
MiddleName  : Henry
LastName    : Davis
DisplayName : George D.
Alias       : Kidd1985
LegalName   : George Henry Davis

Obviously, there are probably some flaws with my design since LegalName contains the same data as the other fields. However, I suspect there are cases where the LegalName cannot be derived from the other fields.

But now I'm curious what system you all would recommend for an international audience?

like image 242
HK1 Avatar asked Jan 06 '11 05:01

HK1


1 Answers

Ah ha. There is no "proper" answer to this but plenty of minefields and cans full of worms...

You have first name, last name, surname, christian name, family name, patronymic, tribal name, middle name, initials, title, maiden name, generational name, occupational name, ...?. An example here on SO

You should also read these "Falsehoods Programmers Believe About Names" and "Last Name First"

Basically, you have to pick a scheme that covers, say, 80% of possibilities.

For example, I have firstname and lastname in my global corporate database for a company with HQ in Western Europe: it does what I need whether it is correct in the wider sense or not.

Edit, Mar 2013.

More offical, non-blog official guidance from W3Org

like image 136
gbn Avatar answered Oct 15 '22 21:10

gbn