Pregunta ¿Cuánto tiempo deberían ser los campos de correo electrónico SQL? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Reconozco que una dirección de correo electrónico puede ser indefinidamente larga, por lo que cualquier tamaño que imponga en mi campo de dirección de correo varchar será arbitrario. Sin embargo, me preguntaba qué es el "estándar". ¿Cuánto tiempo lo hacen ustedes? (la misma pregunta para el campo Nombre ...)

actualizar: Aparentemente, la longitud máxima para una dirección de correo electrónico es 320 (<= 64 parte del nombre, <= 255 dominio). ¿Usas esto?


74
2017-08-19 00:22


origen


Respuestas:


El límite teórico es realmente largo, pero ¿realmente necesita preocuparse por estas largas direcciones de correo electrónico? Si alguien no puede iniciar sesión con un correo electrónico de 100 caracteres, ¿realmente le importa? Nosotros realmente preferimos que ellos no puedan.

Algunos datos estadísticos pueden arrojar algo de luz sobre el tema. Analizamos una base de datos con más de 10 millones de direcciones de correo electrónico. Estas direcciones no están confirmadas, por lo que no son válidas. Aquí hay algunos hechos interesantes,

  1. El más largo válido es 89.
  2. Hay cientos más largos hasta el límite de nuestra columna (255) pero aparentemente son falsos por inspección visual.
  3. El pico de la distribución de longitud está en 19.
  4. No hay cola larga. Todo cae bruscamente después de 38.

Limpiamos el DB desechando algo más de 40. La buena noticia es que nadie se ha quejado, pero la mala noticia es que no se borraron muchos registros.


138
2017-08-19 01:01



En el pasado, he hecho 255 porque ese es el estándar tan arraigado de la entrada corta pero no demasiado corta. Eso, y soy una criatura de hábito.

Sin embargo, dado que el máximo es 319, lo haría nvarchar(320) en la columna Tengo que recordar el @!

nvarchar no usará el espacio que no necesita, por lo que si solo tiene una dirección de correo electrónico de 20 caracteres, solo ocupará 20 bytes. Esto está en contraste con un nchar que lo hará siempre tome su máximo (rellena el valor con espacios).

Yo también usaría nvarchar en lugar de varchar ya que es Unicode Dada la volatilidad de las direcciones de correo electrónico, este es definitivamente el camino a seguir.


15
2017-08-19 00:25



La siguiente dirección de correo electrónico tiene solo 94 caracteres:

i.have.a.really.long.name.like.seetharam.krishnapillai@AReallyLongCompanyNameOfSomeKind.com.au

  • Sería una organización en realidad dar ¿Tienes un correo electrónico tan largo?
  • Si fueran lo suficientemente estúpidos como para hacerlo, ¿lo harías realmente? utilizar una dirección de correo electrónico así?
  • haría ¿nadie? Por supuesto no. Demasiado tiempo para escribir y demasiado difícil de recordar.

Incluso un tecnófobo de 92 años se daría cuenta de cómo registrarse para obtener una buena dirección corta de Gmail, y simplemente usar eso, en lugar de escribir esto en su página de registro.

El espacio en disco probablemente no sea un problema, pero existen al menos dos problemas para permitir que los campos de entrada del usuario sean mucho más largos de lo que deben ser:

  • Visualizarlos podría arruinar tu UI(en el mejor de los casos se los cortará, en el peor, empujarán sus contenedores y márgenes)
  • Los usuarios malintencionados pueden hacer cosas con ellos que no puedes anticipar (como aquellos casos en que los piratas informáticos utilizaron una API en línea gratuita para almacenar un montón de datos)

Me gustan 50 caracteres:

123456789.123456789.123456789@1234567890123456.com

Si un usuario en un millón tiene que usar su otra dirección de correo electrónico para usar mi aplicación, que así sea.

(Las estadísticas muestran que nadie ingresa más de 40 caracteres para la dirección de correo electrónico, ver por ejemplo: la respuesta de ZZ Coder https://stackoverflow.com/a/1297352/87861)


6
2017-08-19 00:33



Si realmente estás siendo colérico, haz un nombre de usuario varchar (60), varchar de dominio (255). Entonces puede hacer estadísticas ridículas sobre el uso del dominio que es un poco más rápido que hacerlo en un solo campo. Si se siente realmente optimista sobre la optimización, eso también hará que su servidor SMTP pueda enviar correos electrónicos con menos conexiones / mejor procesamiento por lotes.


4
2017-08-19 00:28



RFC 5321 (la especificación SMTP actual, obsoletos RFC2821) establece:

4.5.3.1.1. Local-part

La longitud total máxima de un usuario   nombre u otra parte local es 64
  octetos.

4.5.3.1.2. Dominio

La longitud total máxima de un   nombre de dominio o número es 255 octetos.

Esto pertenece solo a localpart @ domain, para un total de 320 caracteres ASCII (7 bits).

Si planea normalizar sus datos, tal vez dividiendo la parte local y el dominio en campos separados, tenga en cuenta otras cosas adicionales:

  • Una técnica conocida como VERP puede dar como resultado partes locales completas para el correo generado automáticamente (puede no ser relevante para su caso de uso)
  • los dominios son insensibles a las mayúsculas y minúsculas; recomendamos minicar la porción del dominio
  • las partes locales son sensibles a mayúsculas y minúsculas; usuario@dominio.com y USUARIO@dominio.com son direcciones técnicamente diferentes según las especificaciones, aunque la política en domain.com mayo tratar las dos direcciones como equivalentes. Lo mejor es restringir el plegado de casos de parte local a dominios que se sabe que lo hacen.

3
2017-08-19 03:53



De acuerdo con este texto, basado en los documentos adecuados de RFC, no es 320 sino 254: http://www.eph.co.uk/resources/email-address-length-faq/

Editar: Usando WayBack Machine: https://web.archive.org/web/20120222213813/http://www.eph.co.uk/resources/email-address-length-faq/

¿Cuál es la longitud máxima de una dirección de correo electrónico?

254 caracteres

Parece haber cierta confusión sobre el correo electrónico válido máximo   tamaño de la dirección La mayoría de las personas creen que es de 320 caracteres (64   caracteres para el nombre de usuario + 255 caracteres para el dominio + 1   personaje para el símbolo @). Otras fuentes sugieren 129 (64 + 1 + 64)   o 384 (128 + 1 + 255, suponiendo que el nombre de usuario se duplica en longitud en   futuro).

Esta confusión significa que debes prestar atención al 'principio de solidez'   ("los desarrolladores deben escribir cuidadosamente un software que se adhiera estrechamente a   RFCs existentes, pero aceptan y analizan las opiniones de los compañeros que podrían no ser   consistente con esos RFC. "- Wikipedia) al escribir software que   trata con direcciones de correo electrónico. Además, algunos programas pueden estar lisiados   por supuestos ingenuos, p. pensando que 50 caracteres son adecuados   (ejemplos). Su dirección de correo electrónico de 200 caracteres puede ser técnicamente válida   pero eso no lo ayudará si la mayoría de los sitios web o aplicaciones lo rechazan.

La longitud máxima real del correo electrónico es actualmente de 254 caracteres:

"La versión original de RFC 3696 decía que 320 era el máximo   largo, pero John Klensin (ICANN) posteriormente aceptó que esto era   incorrecto."

"Esto surge de la simple aritmética de la longitud máxima de un dominio   (255 caracteres) + longitud máxima de un buzón (64 caracteres) + el @   símbolo = 320 caracteres. Incorrecto. Este canard está documentado en   la versión original de RFC3696. Fue corregido en la errata.   En realidad, hay una restricción de RFC5321 en el elemento de ruta de un   Transacción SMTP de 256 caracteres. Pero esto incluye soportes angulares   alrededor de la dirección de correo electrónico, por lo que la longitud máxima de una dirección de correo electrónico es   254 personajes. "- Dominic Sayers


2
2017-07-03 07:44



Yo uso varchar (64) no creo que nadie pueda tener correo electrónico más largo


1
2017-08-12 14:20



Para el correo electrónico, independientemente de la especificación, casi siempre voy con 512 (nvarchar). Los nombres y apellidos son similares.

Realmente, debes ver cuánto te importa tener un poco de información adicional. Para mí, principalmente, no es una preocupación, así que me equivocaré por el lado conservador. Pero si ha decidido, a través de medios lógicos y precisos, que deberá ahorrar espacio, hágalo. Pero, en general, sea conservador con los tamaños de campo, y la vida será buena.

Tenga en cuenta que probablemente no todos los clientes de correo electrónico admitan el RFC, por lo que independientemente de lo que diga, puede encontrar diferentes cosas en la naturaleza.


0
2017-08-19 00:30