Я создаю таблицу базы данных и снова задаю себе тот же глупый вопрос: как долго должно быть поле имени?
У кого-нибудь есть список разумных длин для наиболее распространенных полей , таких как имя, фамилия и адрес электронной почты?
Я создаю таблицу базы данных и снова задаю себе тот же глупый вопрос: как долго должно быть поле имени?
У кого-нибудь есть список разумных длин для наиболее распространенных полей , таких как имя, фамилия и адрес электронной почты?
Ответы:
Рекомендация 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
Личное имя - это Полином (имя с несколькими сортируемыми компонентами), Mononym (имя только с одним компонентом), либо 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 байт.
[N]Varchar
Размеры , однако, влияют на ваши индексы.
Я почти всегда использую степень 2, если нет веской причины не делать этого, например интерфейс пользователя, где какой-то другой номер имеет особое значение для клиента.
Если вы придерживаетесь степеней 2, это удерживает вас в ограниченном наборе общих размеров, что само по себе хорошо, и позволяет легче угадать размер неизвестных объектов, с которыми вы можете столкнуться. Я вижу, что немало других людей делают это, и в этом есть что-то эстетическое. Обычно это вызывает у меня хорошее чувство, когда я вижу это, это означает, что дизайнер думал как инженер или математик. Хотя, возможно, меня беспокоит, если бы использовались только простые числа. :)
Я хотел найти то же самое, и стандарты данных правительства Великобритании, упомянутые в принятом ответе, звучали идеально. Однако, похоже, что ничего из этого больше не существует - после продолжительного поиска я нашел его в архиве здесь: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/ schemasstandards / e-gif / datastandards.aspx . Нужно скачать zip, распаковать его и затем открыть default.htm в папке html.
Это может быть полезно для кого-то;
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 | |
+------------+---------------+---------------------------------+
Изменить : добавлен интервал
Просто просматривая мои почтовые архивы, есть много довольно длинных «первых» имен (конечно, то, что подразумевается под первым, зависит от культуры). Одним из примеров является Кришнамурти, длина которого составляет 13 букв. На основании этого можно предположить, что от 20 до 25 букв. Адрес электронной почты должен быть намного длиннее, поскольку у вас может быть firstname.lastname@somedomain.com. Кроме того, gmail и некоторые другие почтовые программы позволяют вам использовать firstname.lastname+sometag@somedomain.com, где «sometag» - это то, что вы хотите поместить туда, чтобы вы могли использовать его для сортировки входящих писем. Я часто сталкиваюсь с веб-формами, которые не позволяют мне ввести свой полный адрес электронной почты без учета каких-либо тегов. Итак, если вам нужно фиксированное поле электронной почты, может быть что-то вроде 25.25+15@20.3 в символах, в общей сложности 90 символов (если я правильно сделал свою математику!).
Я обычно иду с:
Имя : 30 символов
Фамилия : 30 символов
Электронная почта : 50 символов
Адрес : 200 символов
Если меня беспокоят длинные поля для имен, я мог бы иногда использовать и 50 для полей имен, поскольку в наши дни пространство для хранения данных редко является проблемой.
Если вам нужно учитывать локализацию (для тех из нас, кто находится за пределами США!) И это возможно в вашей среде, я бы посоветовал:
Определите типы данных для каждого компонента имени - ПРИМЕЧАНИЕ: некоторые культуры имеют более двух имен! Затем введите тип для полного имени,
Тогда локализация становится простой (что касается имен).
То же самое относится и к адресам, кстати - разные форматы!