Is normalizing a person's name going too far?

后端 未结 19 1364
后悔当初
后悔当初 2020-12-16 15:10

You usually normalize a database to avoid data redundancy. It\'s easy to see in a table full of names that there is plenty of redundancy. If your goal is to create a catalog

相关标签:
19条回答
  • 2020-12-16 15:20

    Yes, definitely overkill. What's a few dozen bytes betewen friends?

    0 讨论(0)
  • 2020-12-16 15:20

    No, but you might want to normalise to a canonical record for a customer (so you don't get 5 different entries for 'Bloggs & Co.' in your database. This is a data cleansing issue that often bites on MIS projects.

    0 讨论(0)
  • 2020-12-16 15:20

    There might be a case where being able to link married/maiden names would be useful.
    Recently had a case where I had to rename thousands of emails in exchange because somebody got divorced and didn't want any emails listing her as married_name@company.com

    0 讨论(0)
  • 2020-12-16 15:23

    How do you normalize a name? Not all names have the same structure. Not all countries or cultures use the same rules for names. A first name is not necessarily just a first name. People have variable numbers of names. Some countries don't have the simple pair of firstname/lastname. What if my first name just so happens to be your last name, should they be considered the same in your database? If not, then you get into the problem that last name might mean different things in different countries. In most countries I know of, it is a family name. Your last name is the same as at least one of your parents' last name. On Iceland, it is your father's first name, followed by "son" or "daughter". So the same last name will mean completely different things depending on whether you encounter it in Iceland and the US.

    In some cultures it is common when getting married, for the woman to take her husband's last name. In other cultures, that's completely optional, or might even work the opposite way.

    How can you normalize this? What information would it gain you? If you find someone in your database who has "Smith" as the last word making up their name, what does that tell you? It might not be their family name. It might only be part of the family name. It might be an honorary in some language, but which according to their culture, should be considered part of the name.

    You can only normalize data if it follows a common structure.

    0 讨论(0)
  • 2020-12-16 15:23

    I agree with the general response, you wouldn't do that.

    One thing comes to mind though, compression. If you had a billion people and you found that 60% of first names were pulled from 5 very common names, you could use some tricky bit manipulation to reduce the size very significantly. It would also require very customized database software.

    But this isn't for the purpose of normalization, just compression.

    0 讨论(0)
  • 2020-12-16 15:25

    No need to normalize to that level unless the names make up a composite primary key and you have data that is dependant on one of the names (e.g. anyone with the surname Plummer knows nothing about databases). In which case, by not normalizing, you would violate second normal form.

    0 讨论(0)
提交回复
热议问题