Що є розумним обмеженням довжини в полях "Ім'я" для людини?


138

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

Чи доцільніше використовувати щось на кшталт типу стовпця «Текст» або я повинен обмежувати довжину імені чимось розумним?

Я використовую SQL Server 2005, якщо це має значення у вашій відповіді.

EDIT: Я не бачив цього більш широкого питання щодо подібних питань.


1
Перевірте це пов’язане питання, щоб отримати багато дискусій з цього питання.
Кріс Марасті-Георг

2
Що слід зазначити, що в цей час глобалізації варчар НЕ зазвичай є правильним типом даних, швидше за все, ви повинні використовувати nvarchar.
Дао

@Tao: Оскільки він використовує MS SQL Server, я згоден. Але VARCHAR - це правильний тип даних в інших реалізаціях SQL, які мають кращу підтримку UTF-8.
dan04

Відповіді:


142

Каталог стандартів урядових даних Великої Британії пропонує 35 символів для кожного вказаного імені та прізвища, або 70 символів для одного поля для повного імені.


3
Посилання має бути оновлено 22 жовтня 2010 року. Я переглядав: site: *. Gov.uk Ім'я "35 символів" і знайшов цього документа Justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R

Їх посилання здаються дуже поганими ... станом на 8/2012: webarchive.nationalarchives.gov.uk/+/http://…
Thomas B

6
Найдовше "розумне" повне ім'я, яке я знайшов, - "Жизель Марі-Луїза Маргеріт Лафлеш" (довжина 39 байт).
користувач1154664

Трохи більше 54 символів: gw.geneanet.org/…
mestachs

3
Нова Зеландія обмежує повні імена: вони повинні бути менше 100 символів, включаючи пробіли, і не можуть містити символів або цифр. Я думаю, дефіси дозволені в прізвищах, але
Glutnix

27

Я знаю, що я запізнююсь на це, але все одно додам цей коментар, оскільки в майбутньому цілком можуть з’явитися інші з подібними питаннями.

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

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

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


Дякуємо за відповідь, навіть якщо минув якийсь час.
EndangeredMassa

9

Зазвичай я йду з varchar (255) (255 - максимальна довжина типу varchar у MySQL).


30
А ви також залишаєте 255 символів місця у своїх графічних інтерфейсах та інших носіях, де відображається ім’я / прізвище? ;-)
AndrewBourgeois

2
Я думав: "Чому б не завжди використовувати varchar (255)?" Тепер я розумію, що обмеження по довжині в основному стосуються інтерфейсу користувача, а обмеження, від яких дизайнери можуть залежати при розробці інтерфейсу користувача, тоді мова йде про використання занадто багато місця в базі даних.
jdg

6

Якщо це повне ім’я в одному полі, я зазвичай іду зі 128 - 64/64 для першого та останнього в окремих полях - ви просто ніколи не знаєте.


6

@Ian Nelson: Цікаво, чи бачать там інші проблеми.

Скажімо, у вас розділені поля. Це 70 символів, 35 на ім’я та 35 на прізвище. Однак якщо у вас є одне поле, ви нехтуєте простором, який розділяє ім’я та прізвища, коротко змінюючи вас на 1 символ. Звичайно, це "лише" один символ, але це може змінити різницю між тим, хто вводить своє повне ім'я, а хтось ні. Тому я б змінив цю пропозицію на "35 символів для кожного з вказаного імені та прізвища, або 71 символ для одного поля, щоб містити повне ім'я".


2
Сенс слідувати за цим документом полягає в тому, що ви взаємодієте з іншими урядовими системами Великої Британії, тому ви не можете індивідуально підбирати 70 до 71 і називати це щодня, інакше системи з обмеженням 70 знаків відріжуть ваш текст. (Ви не повинні зберігати дані в обох формах у вашій власній системі.) Насправді стає гірше, оскільки повне ім’я включає не лише сім'ю / дані, але також заголовки та суфікси, які також мають обмеження 35 знаків для кожного весело заповнені 143 максимум символів у доданих полях. Досить бути розробником, який повинен обмінюватися даними з обома формами зберігання імен.
mmitchell

3
Зрозуміло, що вказівки написані з очікування, що людина може мати довге ім'я, яке надається (до 35 символів) або довге прізвище (до 35 символів), але навряд чи такі частини імені будуть настільки довгими.
Ян Нельсон

3

У Великобританії існує декілька державних стандартів, які успішно стосуються основної маси населення Великобританії - паспортне бюро, агентство ліцензування водіїв та транспортних засобів, офіс опитування ділових справ та NHS. Вони, очевидно, використовують різні стандарти.

Зміна свого імені на Deed Poll дозволяє 300 символів ;

Немає законних обмежень щодо довжини вашого імені, але ми встановлюємо обмеження в 300 символів (включаючи пробіли) для вашого повного імені.

NHS використовує 70 символів для імен пацієнтів

ПАЦІЄНТ ІМ'Я
Формат / довжина: макс an70

Паспортне бюро дозволяє 30 + 30 перших / останніх, а водійських прав (DVLA) - 30.

Зауважте, що інші організації матимуть власні обмеження щодо того, що вони показуватимуть у створених ними документах - для паспортного офісу HM ліміт становить 30 символів для кожного вашого імені та вашого прізвища, а для DVLA обмеження становить усього 30 символів для вашого повне ім'я.



2

Те, що ви насправді ставите, - це пов’язане, але істотно інше питання: як часто я хочу обрізати імена, щоб їх помістити в базу даних? Відповідь залежить як від частоти різних імен, так і від вибраної максимальної довжини. Ця проблема збалансована занепокоєнням щодо ресурсів, що використовуються в базі даних. Зважаючи на те, наскільки мала велика різниця між різними максимальними довжинами для варчарського поля, я, як правило, помилявся з того, що ніколи не змушений був усікати ім’я та робити поле таким же великим, як я наважився.


1

Зауважимо, що багато культур мають "другі прізвища", які часто називають прізвищами. Наприклад, якщо ви маєте справу з іспанськими людьми, вони оцінять прізвище, відокремлене від свого прізвища.

Найкраще встановити тип даних для компонентів імені, використовувати ті для типу даних для прізвища та налаштувати, залежно від місцевості.


Немає переваги в тому, щоб зменшити обмеження в локальних місцях, які статистично мають менші значення - розмір поля не впливає на зайнятий простір, якщо тільки деякі значення насправді не займають ці додаткові дозволені символи (а це означає, що ви все-таки зробили правильний вибір) !
Дао

0

Середнє ім’я - близько 6 букв. Це залишає 43 прізвища. :) Здається, ви могли, ймовірно, скоротити, якщо хочете.

Головне питання - скільки рядків, на вашу думку, будете мати? Я не думаю, що варчар (50) не вб'є тебе, поки не отримаєш кілька мільйонів рядів.


6
Якщо у стовпчику varchar (20) є 50 мільйонів значень від 10 до 15 символів і стільки ж 50 мільйонів у стовпчику varchar (50), вони займуть абсолютно однаковий простір. У цьому вся суть вархара, на відміну від чару.
Дао


0

залежно від того, хто буде використовувати вашу базу даних, наприклад африканські імена будуть робити з varchar (20) для прізвища та імені. однак він відрізняється від нації до нації, але задля збереження ресурсів вашої бази даних та пам’яті, відокремте поля прізвища та імені та використовуйте varchar (30) думаю, що це спрацює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.