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.
Odpowiedzi:
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.
źródło
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.
źródło
Zwykle używam varchar (255) (255 to maksymalna długość typu varchar w MySQL).
źródło
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.
źródło
@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”.
źródło
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 ;
NHS korzysta z 70 znaków nazwy dla pacjentów
Biuro paszportowe zezwala na 30 + 30 pierwszych / ostatnich, a prawa jazdy (DVLA) to łącznie 30.
źródło
Używamy 50.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło