For our application, which has a website and a backend, we really like the notion of capturing a "full name" for people to allow for the many different ways of expressing someone's name. However;
- The payment service provider wants "all first names, surname" which are obligatory for card payments
- The newsletter guys want a singular "first name" so the company can be seen to be more 'personal'
- The accounts people want to be able to sort by "surname"
- We programmers have noticed the following clients in our database:
- Simon Mária – her “first name” is Mária and her “surname” is Simon
- Danesh – only one name (although I assume it’s different written in the appropriate character set!)
- 陳心蘭 – not sure which is the first name or surname (presumably, this client would have written in a roman character set if forced to do so)
These make it necessary to capture each of the elements of someone's name separately, and somehow making names that don't really fit into "title, first name, surname" pattern fit anyway.
So, without having a field for every part of "Right Hon. Chev. John Barrington Smythe Doe III OBE LLD MEng" or only one field where just "John" might be entered, how do you structure your application and database in practice so that you don't get caught out later?
I've already looked through the SO posts such as: First name, middle name, last name. Why not Full Name? and Person name structure in separate database table but haven't seen any examples of how people implement the best practice method (capturing "full_name") in the real world when having to deal with other systems which perhaps aren't current or best practice...
Thanks!
EDITED - for clarity