Список стандартных длин для полей базы данных

Я разрабатываю таблицу базы данных и снова задаю себе тот же глупый вопрос: Какой длины должно быть поле имени?

Есть ли у кого-нибудь список разумной длины для наиболее распространенных полей, например имя, фамилия и адрес электронной почты?

См. «Максимальная длина действующего идентификатора электронной почты» для получения информации о максимальной длине адреса электронной почты.

outis 16.04.2011 21:50

А как насчет URL-адреса, например блога или ссылки на профиль?

AlikElzin-kilaka 14.01.2015 09:53

Облажался, если имя такое длинное, как это gintama.wikia.com/wiki/Jugem_Jugem

絢瀬絵里 10.04.2017 19:16

Только убедитесь, что вы разрешаете использовать в именах не-альфа-символы! указывает на дефис в своей фамилии

Chris Marasti-Georg 22.08.2008 00:03

Одно замечание: не требуйте одновременно «имя» и «фамилию». У некоторых людей, таких как я, есть только одно имя. (Доказательство: web.archive.org/web/20130115074449/http://saizai.com/…)

Sai 08.07.2011 06:06
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
411
5
247 799
13
Перейти к ответу Данный вопрос помечен как решенный

Ответы 13

Просто просматривая мои архивы электронной почты, можно увидеть несколько довольно длинных «первых» имен (конечно, то, что подразумевается под первым, зависит от культуры). Одним из примеров является Кришнамурти, состоящий из 13 букв. Основываясь на этом, хорошее предположение может составлять от 20 до 25 букв. Электронная почта должна быть на много длиннее, так как у вас может быть [email protected]. Кроме того, gmail и некоторые другие почтовые программы позволяют использовать [email protected], где sometag - это все, что вы хотите поместить туда, чтобы вы могли использовать его для сортировки входящих писем. Я часто сталкиваюсь с веб-формами, которые не позволяют мне ввести полный адрес электронной почты без учета каких-либо тегов. Итак, если вам нужно фиксированное поле электронной почты, возможно, что-то вроде [email protected] в символах, всего 90 символов (если я правильно подсчитал!).

Домен верхнего уровня может содержать более 3 символов. Таким образом, только 3 символа для TLD не являются безопасным расчетом в наше время. Так что на всякий случай: я бы посоветовал принять во внимание как минимум 32 символа для TLD (я считаю, что максимум 63 символа). В этом случае: я бы предложил использовать не менее 128 символов для полей электронной почты, предпочтительно более 160 символов.

Tommie 03.02.2021 12:13

это варчар, верно? Таким образом, не имеет значения, используете ли вы 50 или 25, лучше перестраховаться и использовать 50, при этом я считаю, что самое длинное, что я видел, составляет около 19 или около того. Фамилии длиннее

Я только что запросил свою базу данных у миллионов клиентов в США.

  • Максимальная длина имя была 46. Я использую 50 (конечно, только 500 из них были больше 25, и во всех случаях импорт данных приводил к тому, что в этом поле накапливался лишний мусор).

  • Фамилия был похож на имя.

  • Адрес электронной почты достиг максимального значения 62 символы. Большинство из самых длинных были списками адресов электронной почты адреса, разделенные точкой с запятой.

  • адрес улицы достигает максимума 95 символы. Длинные были все действительный.

  • Максимальная длина город составляла 35.

Это должен быть приличный статистический разброс для жителей США. Если вам нужно рассмотреть вопрос о локализации, цифры могут значительно отличаться.

По сравнению с вашей, базы данных, к которым у меня есть доступ, крошечные, но даже там я нашел адрес электронной почты из 138 символов. Компонент localpart, очевидно, является своего рода отличительным именем LDAP (или AD?).

Bernd Jendrissek 10.03.2011 18:54

@EricZBeard Включает ли "уличный адрес" номер дома?

noɥʇʎԀʎzɐɹƆ 11.06.2015 03:26

Средняя длина адресов электронной почты в вашей базе данных не является хорошей мерой для рекомендации. Максимальная допустимая длина адреса электронной почты составляет 254 символа и должна соответствовать длине, указанной в базе данных. Кроме того, наличие списков адресов электронной почты в одном столбце означает для меня, что ваши данные не нормализованы, и, таким образом, делает ваш ответ еще более недействительным.

Mario 26.09.2016 16:48

то же, что и @Mario. Есть спецификация для размера электронной почты dominicsayers.com/isemail

GeoStoneMarten 16.12.2016 13:31

@Mario, если подумать, большинство программ, использующих электронную почту для входа в систему, например, вероятно, не должен допускают смехотворно непрактичные адреса электронной почты. См. Обсуждение здесь stackoverflow.com/questions/1297272

MGOwen 27.10.2017 06:50

Это довольно ясно, если вы посмотрите на это: двести пятьдесят четыре персонажа длиннее этого. как много людей могут действительно использовать это как свое имя пользователя unle‌ sssomethingfishyisgo‌, если вы, вероятно

MGOwen 27.10.2017 06:57

@MGOwen Во-первых, вы не знаете цель базы данных, в определенных настройках кому-то отказано в доступе из-за такой несерьезной проблемы, как "слишком длинный" адрес электронной почты, может быть серьезной проблемой. Во-вторых, в опубликованной вами ссылке написано: «Самый длинный действительный - 89», а в этой - 62. Что правильно? Если вы просто хотите выбрать произвольный номер или у вас есть веская причина, например, имя должно быть включено как часть адреса, прекрасно. Однако все же разумно, чтобы в случае сомнений вы ссылались на спецификацию. Я по-прежнему считаю, что один человек, говорящий «моя база данных достигает максимума в x», является анекдотическим.

Mario 30.10.2017 21:18

Самое длинное название города - «Taumatawhakatangihangakoauauotamateaturipukakapikimaunga‌ horonukupokaiwhenua kitanatahu», состоящее из 85 символов. en.wikipedia.org/wiki/List_of_long_place_names

binarysubstrate 05.04.2018 17:01

@binarysubstrate На самом деле, самое длинное название города - Krung Thep Mahanakhon Amon Rattanakosin Mahinthara Yuthaya Mahadilok Phop Noppharat Ratchathani Burirom Udomratchaniwet Mahasathan Amon Piman Awatan Sathit Sakkathattiya Witsanukam Prasit (также известное как «Бангкок») с длиной 187 символов.

Grant Miller 22.06.2018 23:46

Почему бы просто не использовать VARCHAR (255) для всего? Что касается адресов электронной почты, перейдите по этой ссылке: lifewire.com/is-email-address-length-limited-1171110 Первоначально стандарт состоял из 64 символов для имени пользователя, 255 символов для имени домена и одного символа для знака @ (всего 320). Теперь это 254 для имени пользователя + знака @ + имени домена.

Peter Jirak Eldritch 27.05.2019 19:46

«Я только что запросил свою базу данных у миллионов клиентов в США». - это обязательство ответить на ТАК вопрос :)

rybo111 09.07.2020 14:45

Я обычно использую:

Имя: 30 символов Фамилия: 30 символов Электронное письмо: 50 символов Адрес: 200 символов

Если меня беспокоят длинные поля для имен, я иногда могу использовать 50 для полей имен, поскольку в наши дни пространство для хранения редко является проблемой.

50 для электронной почты? 254 - это максимум на самом деле

Marko 03.05.2012 06:56

Я бы сказал, что ошибаюсь в высокой степени. Поскольку вы, вероятно, будете использовать varchar, любое дополнительное пространство, которое вы позволите, фактически не займет дополнительное пространство, если оно кому-то не понадобится. Я бы сказал, что для имен (первых или последних) используйте не менее 50 символов, а для адреса электронной почты - не менее 128. Есть несколько действительно длинных адресов электронной почты.

Еще мне нравится заходить в Lipsum.com и просить его сгенерировать текст. Таким образом вы сможете получить хорошее представление о том, как выглядят 100 байт.

О боже - первый, кто заметил, что большие поля не обязательно означают больше места для хранения, отсюда и «var» в varchar. Хотя NVarchar обычно имеет больше смысла для имен.

Tao 16.07.2010 11:48

Зависит от реализации. Вам не нужен NVARCHAR, если VARCHAR поддерживает UTF-8.

dan04 22.12.2010 10:10

Однако размеры делать[N]Varchar влияют на ваши индексы.

RBarryYoung 08.11.2013 02:37

Я почти всегда использую степень двойки, если нет веской причины не делать этого, например, интерфейс, ориентированный на клиента, где какое-то другое число имеет особое значение для клиента.

Если вы придерживаетесь степени двойки, это удерживает вас в пределах ограниченного набора общих размеров, что само по себе хорошо, и это позволяет легче угадывать размер неизвестных объектов, с которыми вы можете столкнуться. Я вижу, как это делают многие другие люди, и в этом есть что-то эстетичное. Когда я это вижу, у меня обычно возникает хорошее предчувствие, это означает, что дизайнер думал как инженер или математик. Хотя я, наверное, был бы обеспокоен, если бы использовались только простые числа. :)

Можно утверждать, что 2ⁿ - 1, 2ⁿ - 2 или даже 2ⁿ - 4, два было бы лучшим инженерным решением, потому что часто строки представлены как массивы символов с нулевым индексом и оканчиваются нулевым символом, байтом или двумя байтами (UTF-8 ). Также с некоторыми базами данных, превышающими 255 на varchar, требуется дополнительный байт для хранения (см. stackoverflow.com/questions/2340639/…).

Pocketsand 19.05.2016 16:40

Если вам нужно рассмотреть возможность локализации (для тех из нас, кто находится за пределами США!) И это возможно в вашей среде, я бы посоветовал:

Определите типы данных для каждого компонента имени - ПРИМЕЧАНИЕ: некоторые культуры имеют более двух имен! Затем введите полное имя,

Тогда локализация становится простой (что касается имен).

То же самое и с адресами, кстати - разные форматы!

Каталог стандартов данных правительства Великобритании подробно описывает стандарты Великобритании для такого рода вещей. Он предлагает по 35 символов для каждого имени и фамилии, или 70 символов для одного поля, содержащего полное имя, и 255 символов для адреса электронной почты. Среди других вещей..

Ссылка должна быть обновлена ​​с 22 октября 2010 г. Я поискал в Google: site: *. Gov.uk Имя "35 символов" и нашел этот документ Justice.gov.uk/guidance/docs/electoral-reg-standards.pdf

Tony R 23.10.2010 00:03

Просто подумайте ... разве не должно быть 71 символа для имени и фамилии в одном поле, учитывая, что там должен быть пробел?

Joseph Redfern 17.11.2011 23:04

Это странно, поскольку в нем указано, что полное имя - это титул + имя + фамилия. Это даст 3 * 35 + 2 пробела, так что 107! Не знаю, как они добрались до 70. Похоже, это довольно устаревшая информация.

Adrian Thompson Phillips 18.09.2012 20:22

Что ж, очевидно, они ожидают случайного длинного имени (до 35 символов) и случайной длинной фамилии (до 35 символов), но не обязательно ожидают человека с комбинацией длинного имени и фамилии. Это было бы просто жадно ;-)

Ian Nelson 19.09.2012 00:12

Я честно подумываю поместить имя и фамилию в другую таблицу, а затем просто сослаться на нее ... en.wikipedia.org/wiki/Hubert_B._Wolfe_%2B_666,_Sr.

cr0ck3t 01.06.2015 07:58

Если бы г-н Эль-Тахир Эль-Фадил Эль-Сиддиг Абдеррахман Мохаммед Ахмед Абдель Карим Эль-Махди на самом деле использовал все свои имена при заполнении онлайн-форм, я был бы впечатлен. У меня два отчества, но я использую только одно из них, кроме официальных (то есть государственных) форм.

Leon 20.11.2015 11:30

@ ian-nelson Длина электронного письма в соответствии с RFC 3696: Это ограничение составляет не более 64 символов (октетов) в «локальной части» (до «@») и не более 255 символов (октетов) в части домена (после «@») для общей длины 320 символы. Системы, обрабатывающие электронную почту, должны быть готовы обрабатывать такие длинные адреса, даже если они редко встречаются.

Piotr Nawrot 04.12.2015 14:22

+------------+---------------+---------------------------------+
|   Field    | Length (Char) |           Description           |
+------------+---------------+---------------------------------+
|firstname   | 35            |                                 |
|lastname    | 35            |                                 |
|email       | 255           |                                 |
|url         | 60+           | According to server and browser |
|city        | 45            |                                 |
|address     | 90            |                                 |
+------------+---------------+---------------------------------+

Редактировать: добавлен интервал

Почему бы просто не использовать VARCHAR 255 для всего, что является строкой? VARCHAR не использует заполнение и завершается одним или двумя дополнительными байтами.

radtek 03.02.2016 23:26

varchar может быть немного медленным.

kta 19.11.2019 08:04

Я хотел найти то же самое, и стандарты данных правительства Великобритании, упомянутые в принятом ответе, звучали идеально. Однако ничего из этого, похоже, больше не существовало - после расширенного поиска я нашел его в архиве здесь: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/schemasstandards/e-gif/datastandards.aspx. Необходимо загрузить zip-архив, распаковать его и затем открыть default.htm в папке html.

Некоторые, вероятно, правильные длины столбцов

                            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

Длинная напыщенная речь о личных именах

Личное имя - это либо полином (имя с несколькими компонентами сортируемый), либо мононим (имя, состоящее только из одного компонента), либо пиктоним (имя, представленное изображением - оно существует благодаря таким людям, как Принц).

У человека может быть несколько имен, игровых ролей, таких как LEGAL, MARITAL, MAIDEN, PREFERRED, SOBRIQUET, PSEUDONYM и т. д. У вас могут быть бизнес-правила, такие как «человек может иметь только одно официальное имя за раз, но несколько псевдонимов. вовремя".

Некоторые примеры:

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"
  }
]

или же

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"
  }
]

или же

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"
  }
]

или же

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

Имя, отчество, фамилия могут состоять из нескольких слов, например "Billy Bob" Thornton или Ralph "Vaughn Williams".

Это очень информативный, но не очень полезный ответ. В следующий раз, когда мне понадобится «вероятно правильный» ответ, я дам вам знать.

n8bar 27.04.2016 03:31

Они могут быть кому-то полезны;

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/

Ответ принят как подходящий

Рекомендация W3C:

If designing a form or database that will accept names from people with a variety of backgrounds, you should ask yourself whether you really need to have separate fields for given name and family name.

… Bear in mind that names in some cultures can be quite a lot longer than your own. … Avoid limiting the field size for names in your database. In particular, do not assume that a four-character Japanese name in UTF-8 will fit in four bytes – you are likely to actually need 12.

https://www.w3.org/International/questions/qa-personal-names

Для полей базы данных VARCHAR(255) является безопасным выбором по умолчанию, если вы не можете найти вескую причину использовать что-то еще. Для типичных веб-приложений с производительностью проблем не будет. Не оптимизируйте преждевременно.

Прошло 10 лет с тех пор, как я задал этот вопрос. Имея за плечами еще 10 лет опыта, я склонен с вами согласиться.

Patrick McElhaney 15.09.2018 21:04

Как именно вы напечатаете на конверте имя длиной 255 символов?

Be Kind To New Users 10.11.2018 07:44

Другие вопросы по теме