Seems like someone hasn't read the famous "Falsehoods Programmers Believe about Names"[0]
[0] https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...
Seems like someone hasn't read the famous "Falsehoods Programmers Believe about Names"[0]
[0] https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...
The relationship between person and name is one-to-many
> 11. People’s names are all mapped in Unicode code points.
You can implement custom characters, i.e. https://en.wikipedia.org/wiki/Private_Use_Areas or have a process for exceptions
> 12. People’s names are case sensitive. 13. People’s names are case insensitive.
You can store this as an attribute
> 14. People’s names sometimes have prefixes or suffixes, but you can safely ignore those.
This can be other fields if you're trying to structure the data, or you can simply store the entire name as a contiguous field.
> 18. People’s names have an order to them. Picking any ordering scheme will automatically result in consistent ordering among all systems, as long as both use the same ordering scheme for the same name.
Don't string compare names as a test for equality.
The obvious response to this is: that's too hard (/impossible to do). But that's just the reality of the situation. These issues are not necessarily possible to solve. #21 in particular makes this application very broken even with very plain vanilla western names.