Projektuję tabelę bazy danych i jeszcze raz zadaję sobie to samo głupie pytanie: jak długie powinno być pole imienia?
Czy ktoś ma listę rozsądnych długości dla najbardziej popularnych pól , takich jak imię, nazwisko i adres e-mail?
Projektuję tabelę bazy danych i jeszcze raz zadaję sobie to samo głupie pytanie: jak długie powinno być pole imienia?
Czy ktoś ma listę rozsądnych długości dla najbardziej popularnych pól , takich jak imię, nazwisko i adres e-mail?
Odpowiedzi:
Rekomendacja W3C:
Jeśli projektujesz formularz lub bazę danych, która będzie przyjmować nazwiska osób z różnych środowisk, powinieneś zadać sobie pytanie, czy naprawdę potrzebujesz osobnych pól dla imienia i nazwiska.
… Pamiętaj, że nazwy w niektórych kulturach mogą być znacznie dłuższe niż własne. … Unikaj ograniczania rozmiaru pola dla nazw w bazie danych . W szczególności nie zakładaj, że czteroznakowa japońska nazwa w UTF-8 zmieści się w czterech bajtach - prawdopodobnie będziesz potrzebować 12.
https://www.w3.org/International/questions/qa-personal-names
W przypadku pól bazy danych VARCHAR(255)
jest to bezpieczny domyślny wybór, chyba że naprawdę możesz znaleźć dobry powód, aby użyć czegoś innego. W przypadku typowych aplikacji internetowych wydajność nie będzie stanowić problemu. Nie przedwcześnie optymalizuj.
Właśnie zapytałem moją bazę danych z milionami klientów w USA.
Maksymalna długość imienia wynosiła 46. Idę z 50. (Oczywiście tylko 500 z nich miało ponad 25 lat, i wszystkie były przypadki, w których import danych powodował dodatkowe śmieci w tym polu).
Nazwisko było podobne do imienia.
Adresy e-mail mogą mieć maksymalnie 62 znaki. Większość dłuższych to tak naprawdę listy adresów e-mail oddzielone średnikami.
Maksymalny adres ulicy to 95 znaków. Wszystkie długie były ważne.
Maksymalna długość miasta wynosiła 35.
Powinno to stanowić przyzwoity rozkład statystyczny dla osób w USA. Jeśli masz do rozważenia lokalizację, liczby mogą się znacznie różnić.
Katalog standardów danych rządowych Wielkiej Brytanii wyszczególnia standardy brytyjskie dla tego rodzaju rzeczy. Sugeruje 35 znaków dla każdego imienia i nazwiska lub 70 znaków dla pojedynczego pola na pełne imię i 255 znaków dla adresu e-mail. Pośród innych rzeczy..
Min Max
Hostname 1 255
Domain Name 4 253
Email Address 7 254
Email Address [1] 3 254
Telephone Number 10 15
Telephone Number [2] 3 26
HTTP(S) URL w domain name 11 2083
URL [3] 6 2083
Postal Code [4] 2 11
IP Address (incl ipv6) 7 45
Longitude numeric 9,6
Latitude numeric 8,6
Money[5] numeric 19,4
[1] Allow local domains or TLD-only domains
[2] Allow short numbers like 911 and extensions like 16045551212x12345
[3] Allow local domains, tv:// scheme
[4] http://en.wikipedia.org/wiki/List_of_postal_codes. Use max 12 if storing dash or space
[5] http://stackoverflow.com/questions/224462/storing-money-in-a-decimal-column-what-precision-and-scale
Osobiste imię to albo Polynym (imię z wieloma sortowalnymi składnikami), Mononym (imię tylko z jednym składnikiem) lub Pictonym (imię reprezentowane przez obrazek - istnieje z powodu ludzi takich jak Prince).
Osoba może mieć wiele nazwisk, odgrywać role, takie jak PRAWNE, MORSKIE, MAIDEN, PREFEROWANE, SOBRIQUET, PSEUDONYM itp. Możesz mieć reguły biznesowe, takie jak „osoba może mieć tylko jedną legalną nazwę na raz, ale wiele pseudonimów na czas".
Kilka przykładów:
names: [
{
type:"POLYNYM",
role:"LEGAL",
given:"George",
middle:"Herman",
moniker:"Babe",
surname:"Ruth",
generation:"JUNIOR"
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"The Bambino" /* mononyms can be more than one word, but only one component */
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"The Sultan of Swat"
}
]
lub
names: [
{
type:"POLYNYM",
role:"PREFERRED",
given:"Malcolm",
surname:"X"
},
{
type:"POLYNYM",
role:"BIRTH",
given:"Malcolm",
surname:"Little"
},
{
type:"POLYNYM",
role:"LEGAL",
given:"Malik",
surname:"El-Shabazz"
}
]
lub
names:[
{
type:"POLYNYM",
role:"LEGAL",
given:"Prince",
middle:"Rogers",
surname:"Nelson"
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"Prince"
},
{
type:"PICTONYM",
role:"LEGAL",
url:"http://upload.wikimedia.org/wikipedia/en/thumb/a/af/Prince_logo.svg/130px-Prince_logo.svg.png"
}
]
lub
names:[
{
type:"POLYNYM",
role:"LEGAL",
given:"Juan Pablo",
surname:"Fernández de Calderón",
secondarySurname:"García-Iglesias" /* hispanic people often have two surnames. it can be impolite to use the wrong one. Portuguese and Spaniards differ as to which surname is important */
}
]
Nadane imiona, drugie imiona i nazwiska mogą składać się z wielu słów, takich jak "Billy Bob" Thornton
, lub Ralph "Vaughn Williams"
.
Powiedziałbym, że popełniam błąd z wysokiej strony. Ponieważ prawdopodobnie będziesz używać varchar, wszelkie dodatkowe miejsce, na które pozwolisz, nie zużyje żadnego dodatkowego miejsca, chyba że ktoś go potrzebuje. Powiedziałbym, że w przypadku nazwisk (pierwszych lub ostatnich) wpisz przynajmniej 50 znaków, a dla adresu e-mail ustaw przynajmniej 128. Istnieje kilka naprawdę długich adresów e-mail.
Inną rzeczą, którą lubię, jest przejście do Lipsum.com i poproszenie go o wygenerowanie tekstu. W ten sposób możesz dowiedzieć się, jak wygląda 100 bajtów.
[N]Varchar
rozmiary mają jednak wpływ na twoje indeksy.
Prawie zawsze używam potęgi 2, chyba że istnieje dobry powód, aby tego nie robić, na przykład interfejs skierowany do klienta, w którym jakiś inny numer ma specjalne znaczenie dla klienta.
Jeśli trzymasz się potęg 2, utrzymasz to w ograniczonym zestawie wspólnych rozmiarów, co samo w sobie jest dobrą rzeczą i ułatwia odgadnięcie rozmiaru nieznanych obiektów, które możesz napotkać. Widzę, że robi to wiele innych osób, i jest w tym coś przyjemnego pod względem estetycznym. Na ogół daje mi to dobre wrażenie, kiedy to widzę, oznacza to, że projektant myślał jak inżynier lub matematyk. Chociaż pewnie byłbym zaniepokojony, gdyby zastosowano tylko liczby pierwsze. :)
Chciałem znaleźć to samo, a standardy danych rządu brytyjskiego wymienione w przyjętej odpowiedzi brzmiały idealnie. Wydaje się jednak, że żaden z nich już nie istnieje - po rozszerzonym wyszukiwaniu znalazłem go w archiwum tutaj: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/ schemasstandards / e-gif / datastandards.aspx . Musisz pobrać plik zip, rozpakować go, a następnie otworzyć plik default.htm w folderze HTML.
Mogą to być przydatne dla kogoś;
youtube max channel length = 20
facebook max name length = 50
twitter max handle length = 15
email max length = 255
http://www.interoadvisory.com/2015/08/6-areas-inside-of-linkedin-with-character-limits/
+------------+---------------+---------------------------------+
| Field | Length (Char) | Description |
+------------+---------------+---------------------------------+
|firstname | 35 | |
|lastname | 35 | |
|email | 255 | |
|url | 60+ | According to server and browser |
|city | 45 | |
|address | 90 | |
+------------+---------------+---------------------------------+
Edycja : Dodano pewne odstępy
Patrząc tylko na moje archiwa e-mail, istnieje wiele dość długich „pierwszych” imion (oczywiście to, co oznacza „pierwszy”, jest zmienne w zależności od kultury). Jednym z przykładów jest Krishnamurthy - który ma 13 liter. Na tej podstawie można zgadywać od 20 do 25 liter. E-mail powinien być znacznie dłuższy, ponieważ możesz mieć imię.nazwa@somedomain.com. Ponadto Gmail i niektóre inne programy pocztowe pozwalają na używanie imienia.nazwisko+sometag@somedomain.com, gdzie „somag” to wszystko, co chcesz tam umieścić, abyś mógł użyć go do sortowania przychodzących wiadomości e-mail. Często spotykam się z formularzami internetowymi, które nie pozwalają mi podać pełnego adresu e-mail bez uwzględnienia jakichkolwiek tagów. Tak więc, jeśli potrzebujesz stałego pola e-mail, może coś takiego jak 25,25 +15@20,3 znaków w sumie 90 znaków (jeśli poprawnie wykonałem matematykę!).
Zwykle idę z:
Imię : 30 znaków
Nazwisko : 30 znaków
E - mail : 50 znaków
Adres : 200 znaków
Jeśli martwię się długimi polami na nazwy, czasami mogę również wybrać 50 dla nazw, ponieważ miejsce do przechowywania rzadko stanowi obecnie problem.
Jeśli potrzebujesz rozważyć lokalizację (dla tych z nas poza USA!) I jest to możliwe w twoim środowisku, sugeruję:
Zdefiniuj typy danych dla każdego składnika nazwy - UWAGA: niektóre kultury mają więcej niż dwie nazwy! Następnie wpisz typ pełnej nazwy,
Następnie lokalizacja staje się prosta (jeśli chodzi o nazwy).
To samo dotyczy adresów, BTW - różne formaty!