What is a reasonable length limit on person "Name" fields?

HtmlSqlSql ServerTextboxLimit

Html Problem Overview


I have a simple webform that will allow unauthenticated users to input their information, including name. I gave the name field a limit of 50 characters to coincide with my database table where the field is varchar(50), but then I started to wonder.

Is it more appropriate to use something like the Text column type or should I limit the length of the name to something reasonable?

I'm using SQL Server 2005, in case that matters in your response.

EDIT: I did not see this broader question regarding similar issues.

Html Solutions


Solution 1 - Html

UK Government Data Standards Catalogue suggests 35 characters for each of Given Name and Family Name, or 70 characters for a single field to hold the Full Name.

Solution 2 - Html

I know I'm late on this one, but I'll add this comment anyway, as others may well come here in the future with similar questions.

Beware of tweaking column sizes dependent on locale. For a start, it sets you up for a maintenance nightmare, leaving aside the fact that people migrate, and take their names with them.

For example, Spanish people with those extra surnames can move to and live in an English-speaking country, and can reasonably expect their full name to be used. Russians have patronymics in addition to their surnames, some African names can be considerably longer than most European names.

Go with making each column as wide as you can reasonably do, taking into account the potential row count. I use 40 characters each for first name, other given names and surname and have never found any problems.

Solution 3 - Html

I usually go with varchar(255) (255 being the maximum length of a varchar type in MySQL).

Solution 4 - Html

If it's full name in one field, I usually go with 128 - 64/64 for first and last in separate fields - you just never know.

Solution 5 - Html

@Ian Nelson: I'm wondering if others see the problem there.

Let's say you have split fields. That's 70 characters total, 35 for first name and 35 for last name. However, if you have one field, you neglect the space that separates first and last names, short changing you by 1 character. Sure, it's "only" one character, but that could make the difference between someone entering their full name and someone not. Therefore, I would change that suggestion to "35 characters for each of Given Name and Family Name, or 71 characters for a single field to hold the Full Name".

Solution 6 - Html

In the UK, there are a few government standards which deal successfully with the bulk of the UK population -- the Passport Office, the Driver & Vehicle Licensing Agency, the Deed Poll office, and the NHS. They use different standards, obviously.

Changing your name by Deed Poll allows 300 characters;

> There is no legal limit on the length of your name, but we impose a limit of 300 characters (including spaces) for your full name.

The NHS uses 70 characters for patient names

> PATIENT NAME
> Format/length: max an70

The Passport Office allows 30+30 first/last and Driving Licenses (DVLA) is 30 total.

> Note that other organisations will have their own restrictions about what they will show on the documents they produce — for HM Passport Office the limit is 30 characters each for your forename and your surname, and for the DVLA the limit is 30 characters in total for your full name.

Solution 7 - Html

We use 50.

Solution 8 - Html

What you're really asking is a related, but substantially different question: how often do I want to truncate names in order to fit them in the database? The answer depends both on the frequency of different lengths of names as well as the maximum lengths chosen. This concern is balanced by the concerns about resources used by the database. Considering how little overhead difference there is between different max lengths for a varchar field I'd generally err on the side of never being forced to truncate a name and make the field as large as I dared.

Solution 9 - Html

The answer may differ for a database field which is used to store the name, and for a field in a HTML form.

The length of the Name filed in a HTML can be guided by UX.

There is a study which shows that in Europe, cite: "The median was 6.5 characters for the first names and 7.1 characters for the last names". If you look at the charts below you'll see that 10 characters for each, given name and family name, is enough to have optimal UX.

enter image description here

Also should be noted that governmental databases can't shorten names for obvious reasons. You probably can. They can afford extra storage. You probably not.

Solution 10 - Html

Note that many cultures have 'second surnames' often called family names. For example, if you are dealing with Spanish people, they will appreciate having a family name separated from their 'surname'.

Best bet is to define a data type for the name components, use those for a data type for the surname and tweak depending on locale.

Solution 11 - Html

The average first name is about 6 letters. That leaves 43 for a last name. :) Seems like you could probably shorten it if you like.

The main question is how many rows do you think you will have? I don't think varchar(50) is going to kill you until you get several million rows.

Solution 12 - Html

depending on who is going to be using your database, for example African names will do with varchar(20) for last name and first name separated. however it is different from nation to nation but for the sake saving your database resources and memory, separate last name and first name fields and use varchar(30) think that will work.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEndangeredMassaView Question on Stackoverflow
Solution 1 - HtmlIan NelsonView Answer on Stackoverflow
Solution 2 - HtmlNoel CosgraveView Answer on Stackoverflow
Solution 3 - Htmlpix0rView Answer on Stackoverflow
Solution 4 - HtmlGreg HurlmanView Answer on Stackoverflow
Solution 5 - HtmlThomas OwensView Answer on Stackoverflow
Solution 6 - HtmlSteve CooperView Answer on Stackoverflow
Solution 7 - Htmlcoder1View Answer on Stackoverflow
Solution 8 - HtmlWedgeView Answer on Stackoverflow
Solution 9 - HtmlDmitryView Answer on Stackoverflow
Solution 10 - HtmlColinYoungerView Answer on Stackoverflow
Solution 11 - HtmlCraigView Answer on Stackoverflow
Solution 12 - HtmlThemba MabasoView Answer on Stackoverflow