Каков разумный предел длины для полей "Имя" человека? - PullRequest
128 голосов
/ 27 августа 2008

У меня есть простая веб-форма, которая позволит неаутентифицированным пользователям вводить свою информацию, включая имя. Я присвоил полю имени ограничение в 50 символов, чтобы оно совпадало с таблицей моей базы данных, где поле имеет значение varchar (50), но затем я начал задаваться вопросом.

Уместнее ли использовать что-то вроде типа столбца Текст или мне следует ограничить длину имени чем-то разумным?

Я использую SQL Server 2005, если это важно в вашем ответе.

РЕДАКТИРОВАТЬ: Я не видел этот более широкий вопрос относительно аналогичных вопросов.

Ответы [ 11 ]

130 голосов
/ 27 августа 2008

В каталоге стандартов данных правительства Великобритании предлагается 35 символов для каждого из заданного имени и фамилии или 70 символов для одного поля для хранения полного имени.

25 голосов
/ 19 февраля 2009

Я знаю, что опоздал на этот вопрос, но я все равно добавлю этот комментарий, так как другие могут прийти сюда в будущем с похожими вопросами.

Остерегайтесь настроек колонки в зависимости от локали. Для начала, это настраивает вас на кошмар обслуживания, оставляя в стороне тот факт, что люди мигрируют и берут свои имена с собой.

Например, испанцы с такими дополнительными фамилиями могут переехать и жить в англоязычной стране и могут ожидать, что их полное имя будет использовано. Русские имеют отчества в дополнение к своим фамилиям, некоторые африканские имена могут быть значительно длиннее, чем большинство европейских имен.

Сделайте так, чтобы каждый столбец был настолько широким, насколько это возможно, с учетом потенциального количества строк. Я использую 40 символов каждый для имени, других имен и фамилии и никогда не обнаруживал проблем.

8 голосов
/ 27 августа 2008

Обычно я использую varchar (255) (255 - максимальная длина типа varchar в MySQL).

6 голосов
/ 27 августа 2008

Если это полное имя в одном поле, я обычно использую 128 - 64/64 для первого и последнего в отдельных полях - вы просто никогда не узнаете.

5 голосов
/ 27 августа 2008

@ Ян Нельсон: Мне интересно, видят ли другие проблемы там.

Допустим, у вас есть разделенные поля. Всего 70 символов, 35 для имени и 35 для фамилии. Однако, если у вас есть одно поле, вы пренебрегаете пробелом, разделяющим имя и фамилию, сокращая вас на 1 символ. Конечно, это «только» один персонаж, но это может иметь значение между тем, кто вводит свое полное имя, а кем-то нет. Поэтому я бы изменил это предложение на «35 символов для каждого из заданного имени и фамилии или 71 символ для одного поля, содержащего полное имя».

3 голосов
/ 30 декабря 2015

В Великобритании существует несколько государственных стандартов, которые успешно работают с большей частью населения Великобритании - паспортный стол, Агентство по лицензированию водителей и транспортных средств, офис Deed Poll и NHS. Они используют разные стандарты, очевидно.

Изменение вашего имени по опросу Deed допускает 300 символов ;

Нет никаких юридических ограничений на длину вашего имени, но мы устанавливаем ограничение в 300 символов (включая пробелы) для вашего полного имени.

В NHS для имен пациентов используется 70 символов

ИМЯ ПАЦИЕНТА
Формат / длина: макс. 70

Паспортный стол допускает 30 + 30 первых / последних , а водительских прав (DVLA) всего 30.

Обратите внимание, что другие организации будут иметь свои собственные ограничения относительно того, что они будут показывать в документах, которые они производят - для HM Passport Office ограничение составляет 30 символов каждый для вашего имени и фамилии, а для DVLA ограничение составляет 30 символов Всего за ваше полное имя.

2 голосов
/ 27 августа 2008

То, что вы на самом деле спрашиваете, это связанный, но существенно другой вопрос: как часто я хочу обрезать имена, чтобы разместить их в базе данных? Ответ зависит как от частоты различных длин имен, так и от максимальной выбранной длины. Эта озабоченность уравновешивается опасениями по поводу ресурсов, используемых базой данных. Учитывая, как мало разницы в накладных расходах между разными максимальными длинами для поля varchar, я обычно ошибаюсь из-за того, что никогда не вынужден обрезать имя и делать поле настолько большим, насколько я осмелился.

2 голосов
/ 27 августа 2008

Мы используем 50.

1 голос
/ 27 августа 2008

Обратите внимание, что во многих культурах есть "вторые фамилии", часто называемые фамилиями. Например, если вы имеете дело с испанцами, они оценят, что фамилия будет отделена от их «фамилии».

Лучше всего определить тип данных для компонентов имени, использовать их для типа данных для фамилии и настроить в зависимости от локали.

0 голосов
/ 07 мая 2014

в зависимости от того, кто будет использовать вашу базу данных, например, африканские имена будут делать с varchar (20) для разделения фамилии и имени. однако, это отличается от нации к нации, но ради экономии ресурсов базы данных и памяти, разделите поля фамилии и имени и используйте varchar (30), думаю, что это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...