Lista standardowych długości pól bazy danych

Projektuję tabelę bazy danych i po raz kolejny zadaję sobie to samo głupie pytanie: Jak długo powinno być pole firstname?

Czy ktoś ma listę rozsądnych długości dla najczęściej używanych pól, takich jak imię, nazwisko i adres e-mail?

Author: Patrick McElhaney, 2008-08-21

13 answers

Zalecenie W3C:

"pamiętaj, że nazwy w niektórych kulturach mogą być znacznie dłuższe niż Twoje 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

Dla pól bazy danych, VARCHAR(255) jest bezpiecznym wyborem domyślnym, chyba że możesz wymyśl dobry powód, by użyć czegoś innego. W przypadku typowych aplikacji internetowych wydajność nie będzie problemem. Nie Optymalizuj przedwcześnie.

 2
Author: jrc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-15 17:59:36

Właśnie zapytałem moją bazę danych z milionami klientów w USA.

  • Maksymalna długość imienia wynosiła 46. Stawiam 50. (Oczywiście, tylko 500 z nich było ponad 25, a wszystkie były przypadki, w których import danych powodował dodatkowe śmieci likwidacji w tej dziedzinie.)

  • Nazwisko było podobne do imienia.

  • Adresy e-mail postaci. Większość dłuższych w rzeczywistości były to listy e-mail: adresy oddzielone średnikami.

  • Adres ulicy wynosi maksymalnie 95 postaci. Długie były wszystkie ważne.

  • Max Miasto długość wynosiła 35.

To powinien być przyzwoity spread statystyczny dla ludzi w USA. Jeśli masz lokalizację do rozważenia, liczby mogą się znacznie różnić.

 265
Author: Eric Z Beard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-14 16:07:15

UK Government Data Standards Catalogue wyszczególnia Brytyjskie standardy dla tego rodzaju rzeczy. Sugeruje 35 znaków dla każdego z podanych imion i nazwisk, lub 70 znaków dla pojedynczego pola do przechowywania pełnego imienia i 255 znaków dla adresu e-mail. Między innymi..

 157
Author: Ian Nelson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-25 11:58:32

Niektóre prawdopodobnie poprawne długości kolumn

                            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

Długa rant na imiona osobiste

Nazwa osobowa jest albo wielomianem (nazwa z wieloma składnikami sortowalnymi), Mononimem (nazwa z tylko jednym składnikiem), albo Piktonimem (nazwa reprezentowana przez obraz - istnieje to dzięki ludziom takim jak Prince).

Osoba może mieć wiele imion, odgrywając role, takie jak prawne, małżeńskie, Dziewicze, preferowane, SOBRIQUET, pseudonim, itp. Możesz mieć zasady biznesowe, takie jako "osoba może mieć tylko jedno nazwisko na raz, ale wiele pseudonimów na raz".

Niektóre przykłady:

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 */
  }
]

Imiona, drugie imiona, nazwiska mogą być wieloma wyrazami, takimi jak "Billy Bob" Thornton lub Ralph "Vaughn Williams".

 43
Author: Neil McGuigan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-20 00:43:40

Ja bym powiedział, żeby błądzić z góry. Ponieważ prawdopodobnie będziesz używać varchar, każda dodatkowa przestrzeń, na którą zezwolisz, nie zużyje żadnej dodatkowej przestrzeni, chyba że ktoś jej potrzebuje. Powiedziałbym, że dla imion (pierwsze lub ostatnie), idź co najmniej 50 znaków, a dla adresu e-mail, zrób to co najmniej 128. Istnieje kilka naprawdę długich adresów e-mail.

Kolejna rzecz, którą lubię robić to iść do Lipsum.com i poproś go o wygenerowanie tekstu. W ten sposób można uzyskać dobre pojęcie o tym, co 100 bajtów na to wygląda.

 16
Author: Kibbee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-21 23:20:21

Praktycznie zawsze używam potęgi 2, chyba że istnieje dobry powód, aby tego nie robić, na przykład interfejs klienta, w którym inna liczba ma specjalne znaczenie dla klienta.

Jeśli trzymasz się Mocy 2, to utrzymuje cię w ograniczonym zestawie powszechnych rozmiarów, co samo w sobie jest dobrą rzeczą i ułatwia odgadnięcie wielkości nieznanych obiektów, które możesz napotkać. Widzę, że robi to wiele innych osób i jest w tym coś estetycznego. Informatyka ogólnie daje mi to dobre uczucie, gdy to widzę, to znaczy, że projektant myślał jak inżynier lub matematyk. Choć pewnie byłbym zaniepokojony, gdyby użyto tylko liczb pierwszych. :)

 11
Author: Mike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-06 12:44:07

Chciałem znaleźć to samo, a standardy danych rządu brytyjskiego wymienione w zaakceptowanej odpowiedzi brzmiały idealnie. Jednak żadna z nich już nie istnieje - po dłuższych poszukiwaniach znalazłem ją w archiwum tutaj: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/schemasstandards/e-gif/datastandards.aspx. trzeba pobrać zip, rozpakować go, a następnie otworzyć domyślne.htm w folderze html.

 4
Author: Steve Chambers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-03 08:36:22

Imię: 35 lastname: 35 e-mail : 255 url: 60 + w zależności od serwera i przeglądarki Miasto: 45 adres: 90

 2
Author: Micheal Mouner Mikhail Youssif,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-11 09:30:47

Po prostu patrząc na moje archiwa e-mail, istnieje wiele dość długich "pierwszych" nazw(oczywiście to, co rozumie się przez pierwsze, jest zmienne przez kulturę). Jednym z przykładów jest Krishnamurthy-który ma 13 liter. Na podstawie tego można zgadnąć, że 20 do 25 liter. Email powinien być much dluzej, skoro mogles miec [email protected]. ponadto, gmail i niektóre inne programy pocztowe pozwalają na użycie firstname. [email protected] gdzie "sometag" jest wszystko, co chcesz tam umieścić, dzięki czemu możesz go używać do sortowania przychodzących wiadomości e-mail. Często natykam się na formularze internetowe, które nie pozwalają mi umieścić mojego pełnego adresu e-mail bez uwzględnienia żadnych tagów. Więc, jeśli potrzebujesz stałego pola e-mail może coś w rodzaju [email protected] w postaciach w sumie 90 znaków (gdybym dobrze zrobił matmę!).

 1
Author: Loren Charnley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-21 19:54:46

Mogą się komuś przydać;

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/

 1
Author: PodTech.io,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-29 06:51:06

Zwykle wybieram:

Firstname : 30 znaków
Lastname : 30 znaków
Email: 50 znaków
adres : 200 znaków

Jeśli martwię się o długie pola dla nazw, czasami mogę wybrać 50 dla pól nazw, ponieważ przestrzeń dyskowa rzadko jest problemem w dzisiejszych czasach.

 0
Author: kaybenleroll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-21 19:58:39

Jeśli trzeba rozważyć lokalizację (dla tych z nas poza USA!) i jest to możliwe w Twoim środowisku, proponuję:

Definiowanie typów danych dla każdego składnika nazwy-uwaga: niektóre kultury mają więcej niż dwie nazwy! Następnie wpisz typ dla pełnej nazwy,

Wtedy lokalizacja staje się prosta(jeśli chodzi o nazwy).

To samo dotyczy adresów, BTW-różne formaty!

 0
Author: ColinYounger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-27 15:59:50

To jest varchar prawda? Więc to nie ma znaczenia, czy używasz 50 czy 25, lepiej być bezpiecznym i używać 50, to powiedziane, że najdłuższy, jaki widziałem, to około 19 lub tak. Nazwiska są dłuższe

 -1
Author: SQLMenace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-21 19:57:42