Каков допустимый предел длины для полей "Имя"?

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

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

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

EDIT: Я не видел этот более широкий вопрос относительно похожих вопросов.

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Изменение имени с помощью опроса участников позволяет 300 символов;

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

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

ИМЯ ПАЦИЕНТА
Формат/длина: max an70

Паспортный офис позволяет 30 + 30 первый/последний, а вождение - лицензия (DVLA) - 30.

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

Ответ 9

Среднее имя - около 6 букв. Это оставляет 43 для фамилии.:) Похоже, вы могли бы сократить его, если хотите.

Главный вопрос: сколько строк вы думаете, что у вас будет? Я не думаю, что варчар (50) собирается убить вас, пока вы не получите несколько миллионов строк.

Ответ 10

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

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

Ответ 11

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