First name, middle name, last name. Why not Full Name


I am trying to find a better approach for storing people's name in the table.
What is the benefits of 3 field over 1 field for storing persons name?


Here is an interesting discussion and resources about storing names and user experience

Merging firstname/last name into one field

Best Solution

You can always construct a full name from its components, but you can't always deconstruct a full name into its components.

Say you want to write an email starting with "Dear Richie" - you can do that trivially if you have a given_name field, but figuring out what someone's given name is from their full name isn't trivial.

You can also trivially search or sort by given_name, or family_name, or whatever.

(Note I'm using given_name, family_name, etc. rather than first_name, last_name, because different cultures put their names in different orders.)

Solving this problem in the general case is hard - here's an article that gives a flavour of how hard it is: Representing People's Names in Dublin Core.