Я создаю таблицу базы данных и снова задаю себе тот же самый глупый вопрос: как долго должно быть поле firstname?
Кто-нибудь имеет список разумных длин для наиболее распространенных полей, таких как имя, фамилия и адрес электронной почты?
Я создаю таблицу базы данных и снова задаю себе тот же самый глупый вопрос: как долго должно быть поле firstname?
Кто-нибудь имеет список разумных длин для наиболее распространенных полей, таких как имя, фамилия и адрес электронной почты?
Рекомендация W3C:
При разработке формы или базы данных, которая будет принимать имена от людей с различными фонами, вы должны спросить себя, действительно нужно иметь отдельные поля для имени и фамилии.
... Имейте в виду, что имена в некоторых культурах могут быть намного длиннее чем твой собственный. … Избегайте ограничения размера поля для имен в вашем базы данных. В частности, не предполагайте, что четырехзначный Японское имя в UTF-8 уместится в четыре байта - вы, скорее всего, на самом деле нужно 12.
https://www.w3.org/International/questions/qa-personal-names
Для полей базы данных VARCHAR(255)
является безопасным выбором по умолчанию, если только вы не можете найти вескую причину для использования чего-то другого. Для типичных веб-приложений производительность не будет проблемой. Не преждевременно оптимизировать.
Я просто запросил мою базу данных миллионами клиентов в США.
Максимальное имя - 46. Я занимаюсь 50. (Конечно, только 500 из них были старше 25 лет, и все они были случаи, когда импорт данных приводил к лишнему нежеланию завершение в этом поле.)
Фамилия была похожа на имя.
Адреса электронной почты увеличены на 62 персонажи. Большинство более длинных были фактически списками электронной почты адреса, разделенные точками с запятой.
Адрес улицы высвечивается на 95 персонажи. Длинными были все действительный.
Максимальная длина города - 35.
Это должно быть достойным статистическим распространением для людей в США. Если у вас есть проблема с локализацией, цифры могут значительно различаться.
Каталог стандартов данных правительства Великобритании детализирует британские стандарты для такого рода вещей. Он предлагает 35 символов для каждого из имени и фамилии, или 70 символов для одного поля для хранения полного имени и 255 символов для адреса электронной почты. Среди прочего.
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
Личным именем является либо Polynym (имя с несколькими сортируемыми компонентами), Мононим (имя только с одним компонентом), либо Pictonym (имя, представленное картиной - это существует из-за таких людей, как Prince).
Человек может иметь несколько имен, играя роли, такие как ЮРИДИЧЕСКИЕ, МАРТАЛЫ, МАЙДЕН, ПРЕДПОЧТИТЕЛЬНЫЕ, СОБРИКЕТНЫЕ, ПСЕВДОНИМ и т.д. У вас могут быть бизнес-правила, такие как "у человека может быть только одно юридическое имя за раз, но несколько псевдонимов за раз".
Некоторые примеры:
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"
.
Просто убедитесь, что вы разрешаете не-альфа-символы в именах!
указывает на дефис в его фамилии
Я бы сказал, чтобы ошибаться на высокой стороне. Поскольку вы, вероятно, будете использовать varchar, любое дополнительное пространство, которое вы разрешаете, на самом деле не будет использовать лишнее пространство, если кому-то это не понадобится. Я бы сказал, что для имен (первый или последний), по крайней мере, 50 символов, и для адреса электронной почты сделайте это как минимум 128. Есть некоторые действительно длинные адреса электронной почты.
Еще одна вещь, которую мне нравится делать, - перейти к Lipsum.com и попросить ее сгенерировать некоторый текст. Таким образом, вы можете получить представление о том, как выглядит 100 байтов.
Я почти всегда использую силу 2, если нет веской причины не делать этого, например, клиентский интерфейс, где какой-то другой номер имеет особое значение для клиента.
Если вы придерживаетесь полномочий 2, он удерживает вас в пределах ограниченного набора обычных размеров, что само по себе хорошо, и это упрощает угадывание размера неизвестных объектов, с которыми вы можете столкнуться. Я вижу, как много других людей делают это, и есть что-то эстетически приятное. Обычно это дает мне хорошее чувство, когда я вижу это, это означает, что дизайнер думал, как инженер или математик. Хотя я, вероятно, был бы обеспокоен, если бы были использованы только простые числа.:)
Одна нота: не требует как "имя", так и "фамилия".
Некоторые люди, как и я, имеют только одно имя.
(Доказательство: http://saizai.com/dl_redacted_small.png)
Я хотел найти то же самое, и стандарты данных правительства Великобритании, упомянутые в принятом ответе, звучали идеально. Однако ни один из них, похоже, уже не существовал - после расширенного поиска я нашел его в архиве здесь: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/schemasstandards/e-gif/datastandards.aspx. Необходимо загрузить zip, извлечь его и открыть файл default.htm в папке html.
имя: 35
фамилия: 35
электронная почта: 255
URL: 60+ (в зависимости от сервера и браузера)
город: 45
адрес: 90
Изменение: добавлен интервал
Это может быть полезно кому-то;
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/
Просто глядя, что мои архивы электронной почты, есть несколько довольно длинных "первых" имен (конечно, что подразумевается под первым, это переменная по культуре). Одним из примеров является Кришнамурти, который длится 13 букв. Хорошее предположение может быть от 20 до 25 букв, основанных на этом. Электронная почта должна быть намного дольше, поскольку у вас может быть [email protected] Кроме того, gmail и некоторые другие почтовые программы позволяют использовать [email protected], где "sometag" - это все, что вы хотите разместить там, чтобы вы могли использовать его для сортировки входящих писем. Я часто сталкиваюсь с веб-формами, которые не позволяют мне вводить мой полный адрес электронной почты без учета каких-либо тегов. Итак, если вам нужно поле с фиксированной электронной почтой, возможно, что-то вроде [email protected] в символах в общей сложности 90 символов (если бы я сделал свою математику правильно!).
Обычно я использую:
Имя: 30 символов
Фамилия: 30 символов
Электронная почта: 50 символов
Адрес: 200 символов
Если меня беспокоят длинные поля для имен, иногда я могу использовать 50 полей для имени, так как в наши дни пространство для хранения редко бывает проблемой.
Если вам необходимо рассмотреть локализацию (для тех из нас, кто находится за пределами США!), и это возможно в вашей среде, я бы предложил:
Определите типы данных для каждого компонента имени. ПРИМЕЧАНИЕ. В некоторых культурах есть более двух имен! Затем введите тип для полного имени,
Тогда локализация становится простой (в отношении имен).
То же самое относится к адресам, BTW - разные форматы!
Это варчар справа? Поэтому тогда не имеет значения, используете ли вы 50 или 25, лучше быть в безопасности и использовать 50, и я сказал, что самый длинный из них, который я видел, составляет около 19 или около того. Фамилии длиннее