How do you tell an initial from a single character name?
How do you sort by last name if a person has one word for their entire name?
Assuming names are spelt the same or have a fixed length is also not accurate.
It’s all a trap - using one string might be a terrible solution, but it might also be best.
It sounds like you're just kicking the problem downstream a tiny bit, and making it slightly worse by adding another point which enforces an invalid data model.
Your last sentence is certainly true but I don't see how separate fields makes it any better (or worse).
You commonly see companies with user names that started as first character of first name + last name, and then you see later ones that don't follow the pattern when they realize they can't make it work.
My wife for one. At the very least make the last name field optional.
- First initial and last name are used for some things, such as usernames.
- First name and last initial are used for some things, such as public displays where you don't want to have the full name
- Last name is used to sort lists
- Names are entered differently due to error or constraints in different places, so you want a way to search the parts that stay the same. Sure, you can imagine everybody just had a string field, but it can't happen all at once. And on a global scale, there are definitely people who will enter their name differently anyway.