Jaki jest rozsądny limit długości pól „Imię i nazwisko” osoby?

138

Mam prosty formularz internetowy, który umożliwia nieuwierzytelnionym użytkownikom wprowadzanie swoich informacji, w tym imienia i nazwiska. Nadałem polu nazwy limit 50 znaków, aby pokrywał się z moją tabelą bazy danych, w której pole to varchar (50), ale potem zacząłem się zastanawiać.

Czy lepiej jest użyć czegoś takiego jak typ kolumny Tekst, czy powinienem ograniczyć długość nazwy do czegoś rozsądnego?

Używam SQL Server 2005, na wypadek gdyby miało to znaczenie w Twojej odpowiedzi.

EDYCJA: Nie widziałem tego szerszego pytania dotyczącego podobnych kwestii.

EndangeredMassa
źródło
1
Sprawdź to powiązane pytanie, aby uzyskać wiele dyskusji na ten temat.
Chris Marasti-Georg
2
Coś, na co należy zwrócić uwagę, w dobie globalizacji varchar zwykle NIE jest właściwym typem danych, prawdopodobnie powinieneś używać nvarchar.
Tao,
@Tao: Ponieważ używa MS SQL Server, zgadzam się. Ale VARCHAR jest właściwym typem danych w innych implementacjach SQL, które mają lepszą obsługę UTF-8.
dan04,

Odpowiedzi:

142

Katalog standardów danych rządu brytyjskiego sugeruje 35 znaków dla każdego imienia i nazwiska lub 70 znaków dla pojedynczego pola na imię i nazwisko.

Ian Nelson
źródło
3
Odsyłacz musi zostać zaktualizowany 22 października 2010 r. Wyszukałem w Google: witryna: *. Gov.uk Nazwa „35 znaków” i znalazłem ten dokument Justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R
Ich linki wydają się być naprawdę złe ... stan na 8/2012: webarchive.nationalarchives.gov.uk/+/http://…
Thomas B,
6
Najdłuższe „rozsądne” imię i nazwisko, jakie znalazłem, to „Gisele Marie-Louise Marguerite LaFleche” (długość 39 bajtów).
user1154664
Nieco większe 54 znaki: gw.geneanet.org/…
mestachs
3
Nowa Zelandia ogranicza nazwy pełne: muszą one mieć mniej niż 100 znaków, łącznie ze spacjami, i nie mogą zawierać symboli ani cyfr. Sądzę jednak, że w nazwiskach rodzinnych dozwolone są łączniki.
Glutnix
27

Wiem, że się spóźniłem, ale i tak dodam ten komentarz, ponieważ inni mogą przyjść tu w przyszłości z podobnymi pytaniami.

Uważaj na zmianę rozmiarów kolumn w zależności od lokalizacji. Po pierwsze, ustawia cię na koszmar związany z konserwacją, pomijając fakt, że ludzie migrują i zabierają ze sobą swoje nazwiska.

Na przykład Hiszpanie z tymi dodatkowymi nazwiskami mogą przeprowadzić się do kraju anglojęzycznego i mieszkać w nim oraz mogą oczekiwać, że będzie używane ich pełne imię i nazwisko. Rosjanie oprócz nazwisk mają patronimię, niektóre imiona afrykańskie mogą być znacznie dłuższe niż większość imion europejskich.

Postaraj się, aby każda kolumna była tak szeroka, jak to tylko możliwe, biorąc pod uwagę potencjalną liczbę wierszy. Używam po 40 znaków na imię, inne imiona i nazwisko i nigdy nie znalazłem żadnych problemów.

Noel Cosgrave
źródło
Dzięki za odpowiedź, nawet jeśli minęło trochę czasu.
EndangeredMassa
9

Zwykle używam varchar (255) (255 to maksymalna długość typu varchar w MySQL).

pix0r
źródło
30
Czy rezerwujesz również 255 znaków miejsca w GUI i innych mediach, w których wyświetlane jest imię / nazwisko? ;-)
AndrewBourgeois
2
Kiedyś myślałem: „Dlaczego nie zawsze używać varchar (255)?” Teraz zdaję sobie sprawę, że ograniczenia długości dotyczą głównie interfejsu użytkownika, a ograniczenia, na których projektanci mogą polegać podczas projektowania interfejsu użytkownika, oznaczają zużycie zbyt dużej ilości miejsca w bazie danych.
jdg
6

Jeśli jest to pełne imię i nazwisko w jednym polu, zwykle wybieram 128 - 64/64 na pierwsze i ostatnie w oddzielnych polach - po prostu nigdy nie wiadomo.

Greg Hurlman
źródło
6

@Ian Nelson: Zastanawiam się, czy inni widzą tam problem.

Powiedzmy, że masz podzielone pola. To łącznie 70 znaków, 35 na imię i 35 na nazwisko. Jeśli jednak masz jedno pole, pomijasz spację, która oddziela imię i nazwisko, zmieniając cię krótko o 1 znak. Jasne, to „tylko” jeden znak, ale to może mieć wpływ na to, czy ktoś wprowadzi swoje pełne imię i nazwisko, a ktoś nie. Dlatego zmieniłbym tę sugestię na „35 znaków dla każdego imienia i nazwiska lub 71 znaków dla jednego pola na pełne imię i nazwisko”.

Thomas Owens
źródło
2
Celem przestrzegania tego dokumentu jest zapewnienie interoperacyjności z innymi systemami rządowymi Wielkiej Brytanii, więc nie można indywidualnie podbijać 70 do 71 i wywoływać tego dziennie, w przeciwnym razie systemy z limitem 70 znaków odetną twój tekst. (Nie powinieneś przechowywać danych w obu formularzach we własnym systemie). W rzeczywistości jest jeszcze gorzej, ponieważ Pełne imię i nazwisko obejmuje nie tylko rodzinę / nadane, ale także tytuł i sufiks, z których każdy ma również limit 35 znaków, dla zabawne, maksymalnie 143 znaki w dołączonych polach. Do bani jest programistą, który musi wymieniać dane z obiema formami przechowywania nazw.
mmitchell
3
Oczywiście wytyczne zostały napisane z założeniem, że dana osoba może mieć długie imię (do 35 znaków) lub długie nazwisko (do 35 znaków), ale jest mało prawdopodobne, aby OBIE części nazwiska były tak długie.
Ian Nelson
3

W Wielkiej Brytanii istnieje kilka standardów rządowych, które z powodzeniem odnoszą się do większości populacji Wielkiej Brytanii - Urząd Paszportowy, Agencja ds. Licencji Kierowców i Pojazdów, biuro Deed Poll i NHS. Oczywiście używają różnych standardów.

Zmiana imienia przez Deed Poll pozwala na 300 znaków ;

Nie ma prawnego ograniczenia długości imienia i nazwiska, ale nakładamy limit 300 znaków (ze spacjami) na imię i nazwisko.

NHS korzysta z 70 znaków nazwy dla pacjentów

NAZWA PACJENTA
Format / długość: max an70

Biuro paszportowe zezwala na 30 + 30 pierwszych / ostatnich, a prawa jazdy (DVLA) to łącznie 30.

Pamiętaj, że inne organizacje będą miały własne ograniczenia dotyczące tego, co pokażą na dokumentach, które przedstawiają - w przypadku HM Passport Office limit wynosi 30 znaków na imię i nazwisko, a dla DVLA limit wynosi łącznie 30 znaków na Twoje pełne imię i nazwisko.

Steve Cooper
źródło
2

To, o co tak naprawdę pytasz, jest pokrewnym, ale zasadniczo innym pytaniem: jak często chcę skracać nazwy, aby dopasować je do bazy danych? Odpowiedź zależy zarówno od częstotliwości różnych długości nazw, jak i od wybranych maksymalnych długości. Troskę tę równoważą obawy dotyczące zasobów wykorzystywanych przez bazę danych. Biorąc pod uwagę, jak niewielka jest różnica narzutu między różnymi maksymalnymi długościami pola varchar, generalnie błądziłbym po stronie, aby nigdy nie zostać zmuszonym do obcięcia nazwy i uczynienia pola tak dużym, jak się odważyłem.

Klin
źródło
1

Należy zauważyć, że w wielu kulturach „drugie nazwiska” są często nazywane nazwiskami rodzinnymi. Na przykład, jeśli masz do czynienia z Hiszpanami, z pewnością docenią oddzielenie nazwiska rodowego od „nazwiska”.

Najlepiej jest zdefiniować typ danych dla składników nazwy, użyć tych dla typu danych dla nazwiska i dostosować je w zależności od lokalizacji.

ColinYounger
źródło
Nie ma żadnej korzyści z ograniczania limitów w lokalizacjach, które statystycznie mają mniejsze wartości - rozmiar pola nie wpływa na zajmowane miejsce, chyba że niektóre wartości faktycznie zajmują te dodatkowe dozwolone znaki (a to oznacza, że ​​i tak dokonałeś właściwego wyboru) !
Tao,
0

Przeciętne imię ma około 6 liter. To pozostawia 43 na nazwisko. :) Wygląda na to, że prawdopodobnie mógłbyś go skrócić, jeśli chcesz.

Głównym pytaniem jest, jak myślisz, ile rzędów będziesz mieć? Nie sądzę, żeby varchar (50) cię zabił, dopóki nie zdobędziesz kilku milionów wierszy.

Craig
źródło
6
Jeśli masz 50 milionów wartości od 10 do 15 znaków w kolumnie varchar (20) i te same 50 milionów wartości w kolumnie varchar (50), zajmą dokładnie taką samą przestrzeń. O to właśnie chodzi w varchar, w przeciwieństwie do char.
Tao,
@Tao patrz stackoverflow.com/questions/11132357/…
Habeeb Perwad,
0

w zależności od tego, kto będzie korzystał z Twojej bazy danych, na przykład nazwy afrykańskie zrobią z varchar (20) jako nazwisko i imię oddzielone. jednak różni się w zależności od kraju, ale dla zachowania zasobów bazy danych i pamięci, oddziel pola nazwiska i imienia i użyj varchar (30), że to zadziała.

Themba Mabaso
źródło