Я разрабатываю таблицу базы данных и снова задаю себе тот же глупый вопрос: Какой длины должно быть поле имени?
Есть ли у кого-нибудь список разумной длины для наиболее распространенных полей, например имя, фамилия и адрес электронной почты?
А как насчет URL-адреса, например блога или ссылки на профиль?
Облажался, если имя такое длинное, как это gintama.wikia.com/wiki/Jugem_Jugem
Только убедитесь, что вы разрешаете использовать в именах не-альфа-символы! указывает на дефис в своей фамилии
Одно замечание: не требуйте одновременно «имя» и «фамилию». У некоторых людей, таких как я, есть только одно имя. (Доказательство: web.archive.org/web/20130115074449/http://saizai.com/…)

Просто просматривая мои архивы электронной почты, можно увидеть несколько довольно длинных «первых» имен (конечно, то, что подразумевается под первым, зависит от культуры). Одним из примеров является Кришнамурти, состоящий из 13 букв. Основываясь на этом, хорошее предположение может составлять от 20 до 25 букв. Электронная почта должна быть на много длиннее, так как у вас может быть [email protected]. Кроме того, gmail и некоторые другие почтовые программы позволяют использовать [email protected], где sometag - это все, что вы хотите поместить туда, чтобы вы могли использовать его для сортировки входящих писем. Я часто сталкиваюсь с веб-формами, которые не позволяют мне ввести полный адрес электронной почты без учета каких-либо тегов. Итак, если вам нужно фиксированное поле электронной почты, возможно, что-то вроде [email protected] в символах, всего 90 символов (если я правильно подсчитал!).
Домен верхнего уровня может содержать более 3 символов. Таким образом, только 3 символа для TLD не являются безопасным расчетом в наше время. Так что на всякий случай: я бы посоветовал принять во внимание как минимум 32 символа для TLD (я считаю, что максимум 63 символа). В этом случае: я бы предложил использовать не менее 128 символов для полей электронной почты, предпочтительно более 160 символов.
это варчар, верно? Таким образом, не имеет значения, используете ли вы 50 или 25, лучше перестраховаться и использовать 50, при этом я считаю, что самое длинное, что я видел, составляет около 19 или около того. Фамилии длиннее
Я только что запросил свою базу данных у миллионов клиентов в США.
Максимальная длина имя была 46. Я использую 50 (конечно, только 500 из них были больше 25, и во всех случаях импорт данных приводил к тому, что в этом поле накапливался лишний мусор).
Фамилия был похож на имя.
Адрес электронной почты достиг максимального значения 62 символы. Большинство из самых длинных были списками адресов электронной почты адреса, разделенные точкой с запятой.
адрес улицы достигает максимума 95 символы. Длинные были все действительный.
Максимальная длина город составляла 35.
Это должен быть приличный статистический разброс для жителей США. Если вам нужно рассмотреть вопрос о локализации, цифры могут значительно отличаться.
По сравнению с вашей, базы данных, к которым у меня есть доступ, крошечные, но даже там я нашел адрес электронной почты из 138 символов. Компонент localpart, очевидно, является своего рода отличительным именем LDAP (или AD?).
@EricZBeard Включает ли "уличный адрес" номер дома?
Средняя длина адресов электронной почты в вашей базе данных не является хорошей мерой для рекомендации. Максимальная допустимая длина адреса электронной почты составляет 254 символа и должна соответствовать длине, указанной в базе данных. Кроме того, наличие списков адресов электронной почты в одном столбце означает для меня, что ваши данные не нормализованы, и, таким образом, делает ваш ответ еще более недействительным.
то же, что и @Mario. Есть спецификация для размера электронной почты dominicsayers.com/isemail
@Mario, если подумать, большинство программ, использующих электронную почту для входа в систему, например, вероятно, не должен допускают смехотворно непрактичные адреса электронной почты. См. Обсуждение здесь stackoverflow.com/questions/1297272
Это довольно ясно, если вы посмотрите на это: двести пятьдесят четыре персонажа длиннее этого. как много людей могут действительно использовать это как свое имя пользователя unle sssomethingfishyisgo, если вы, вероятно
@MGOwen Во-первых, вы не знаете цель базы данных, в определенных настройках кому-то отказано в доступе из-за такой несерьезной проблемы, как "слишком длинный" адрес электронной почты, может быть серьезной проблемой. Во-вторых, в опубликованной вами ссылке написано: «Самый длинный действительный - 89», а в этой - 62. Что правильно? Если вы просто хотите выбрать произвольный номер или у вас есть веская причина, например, имя должно быть включено как часть адреса, прекрасно. Однако все же разумно, чтобы в случае сомнений вы ссылались на спецификацию. Я по-прежнему считаю, что один человек, говорящий «моя база данных достигает максимума в x», является анекдотическим.
Самое длинное название города - «Taumatawhakatangihangakoauauotamateaturipukakapikimaunga horonukupokaiwhenua kitanatahu», состоящее из 85 символов. en.wikipedia.org/wiki/List_of_long_place_names
@binarysubstrate На самом деле, самое длинное название города - Krung Thep Mahanakhon Amon Rattanakosin Mahinthara Yuthaya Mahadilok Phop Noppharat Ratchathani Burirom Udomratchaniwet Mahasathan Amon Piman Awatan Sathit Sakkathattiya Witsanukam Prasit (также известное как «Бангкок») с длиной 187 символов.
Почему бы просто не использовать VARCHAR (255) для всего? Что касается адресов электронной почты, перейдите по этой ссылке: lifewire.com/is-email-address-length-limited-1171110 Первоначально стандарт состоял из 64 символов для имени пользователя, 255 символов для имени домена и одного символа для знака @ (всего 320). Теперь это 254 для имени пользователя + знака @ + имени домена.
«Я только что запросил свою базу данных у миллионов клиентов в США». - это обязательство ответить на ТАК вопрос :)
Я обычно использую:
Имя: 30 символов Фамилия: 30 символов Электронное письмо: 50 символов Адрес: 200 символов
Если меня беспокоят длинные поля для имен, я иногда могу использовать 50 для полей имен, поскольку в наши дни пространство для хранения редко является проблемой.
50 для электронной почты? 254 - это максимум на самом деле
Я бы сказал, что ошибаюсь в высокой степени. Поскольку вы, вероятно, будете использовать varchar, любое дополнительное пространство, которое вы позволите, фактически не займет дополнительное пространство, если оно кому-то не понадобится. Я бы сказал, что для имен (первых или последних) используйте не менее 50 символов, а для адреса электронной почты - не менее 128. Есть несколько действительно длинных адресов электронной почты.
Еще мне нравится заходить в Lipsum.com и просить его сгенерировать текст. Таким образом вы сможете получить хорошее представление о том, как выглядят 100 байт.
О боже - первый, кто заметил, что большие поля не обязательно означают больше места для хранения, отсюда и «var» в varchar. Хотя NVarchar обычно имеет больше смысла для имен.
Зависит от реализации. Вам не нужен NVARCHAR, если VARCHAR поддерживает UTF-8.
Однако размеры делать[N]Varchar влияют на ваши индексы.
Я почти всегда использую степень двойки, если нет веской причины не делать этого, например, интерфейс, ориентированный на клиента, где какое-то другое число имеет особое значение для клиента.
Если вы придерживаетесь степени двойки, это удерживает вас в пределах ограниченного набора общих размеров, что само по себе хорошо, и это позволяет легче угадывать размер неизвестных объектов, с которыми вы можете столкнуться. Я вижу, как это делают многие другие люди, и в этом есть что-то эстетичное. Когда я это вижу, у меня обычно возникает хорошее предчувствие, это означает, что дизайнер думал как инженер или математик. Хотя я, наверное, был бы обеспокоен, если бы использовались только простые числа. :)
Можно утверждать, что 2ⁿ - 1, 2ⁿ - 2 или даже 2ⁿ - 4, два было бы лучшим инженерным решением, потому что часто строки представлены как массивы символов с нулевым индексом и оканчиваются нулевым символом, байтом или двумя байтами (UTF-8 ). Также с некоторыми базами данных, превышающими 255 на varchar, требуется дополнительный байт для хранения (см. stackoverflow.com/questions/2340639/…).
Если вам нужно рассмотреть возможность локализации (для тех из нас, кто находится за пределами США!) И это возможно в вашей среде, я бы посоветовал:
Определите типы данных для каждого компонента имени - ПРИМЕЧАНИЕ: некоторые культуры имеют более двух имен! Затем введите полное имя,
Тогда локализация становится простой (что касается имен).
То же самое и с адресами, кстати - разные форматы!
Каталог стандартов данных правительства Великобритании подробно описывает стандарты Великобритании для такого рода вещей. Он предлагает по 35 символов для каждого имени и фамилии, или 70 символов для одного поля, содержащего полное имя, и 255 символов для адреса электронной почты. Среди других вещей..
Ссылка должна быть обновлена с 22 октября 2010 г. Я поискал в Google: site: *. Gov.uk Имя "35 символов" и нашел этот документ Justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Просто подумайте ... разве не должно быть 71 символа для имени и фамилии в одном поле, учитывая, что там должен быть пробел?
Это странно, поскольку в нем указано, что полное имя - это титул + имя + фамилия. Это даст 3 * 35 + 2 пробела, так что 107! Не знаю, как они добрались до 70. Похоже, это довольно устаревшая информация.
Что ж, очевидно, они ожидают случайного длинного имени (до 35 символов) и случайной длинной фамилии (до 35 символов), но не обязательно ожидают человека с комбинацией длинного имени и фамилии. Это было бы просто жадно ;-)
Я честно подумываю поместить имя и фамилию в другую таблицу, а затем просто сослаться на нее ... en.wikipedia.org/wiki/Hubert_B._Wolfe_%2B_666,_Sr.
Если бы г-н Эль-Тахир Эль-Фадил Эль-Сиддиг Абдеррахман Мохаммед Ахмед Абдель Карим Эль-Махди на самом деле использовал все свои имена при заполнении онлайн-форм, я был бы впечатлен. У меня два отчества, но я использую только одно из них, кроме официальных (то есть государственных) форм.
@ ian-nelson Длина электронного письма в соответствии с RFC 3696: Это ограничение составляет не более 64 символов (октетов) в «локальной части» (до «@») и не более 255 символов (октетов) в части домена (после «@») для общей длины 320 символы. Системы, обрабатывающие электронную почту, должны быть готовы обрабатывать такие длинные адреса, даже если они редко встречаются.
+------------+---------------+---------------------------------+
| Field | Length (Char) | Description |
+------------+---------------+---------------------------------+
|firstname | 35 | |
|lastname | 35 | |
|email | 255 | |
|url | 60+ | According to server and browser |
|city | 45 | |
|address | 90 | |
+------------+---------------+---------------------------------+
Редактировать: добавлен интервал
Почему бы просто не использовать VARCHAR 255 для всего, что является строкой? VARCHAR не использует заполнение и завершается одним или двумя дополнительными байтами.
varchar может быть немного медленным.
Я хотел найти то же самое, и стандарты данных правительства Великобритании, упомянутые в принятом ответе, звучали идеально. Однако ничего из этого, похоже, больше не существовало - после расширенного поиска я нашел его в архиве здесь: 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".
Это очень информативный, но не очень полезный ответ. В следующий раз, когда мне понадобится «вероятно правильный» ответ, я дам вам знать.
Они могут быть кому-то полезны;
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 лет опыта, я склонен с вами согласиться.
Как именно вы напечатаете на конверте имя длиной 255 символов?
См. «Максимальная длина действующего идентификатора электронной почты» для получения информации о максимальной длине адреса электронной почты.