Espero que la columna sea un VARCHAR2, en mi base de datos Oracle.
Las cremalleras estadounidenses son 9.
Canadiense tiene 7 años.
Creo que 32 caracteres serían un límite superior razonable
¿Qué me estoy perdiendo?
[EDITAR] TIL: 12 es una respuesta razonable a la pregunta Gracias a todos los que contribuyeron.
database
oracle
globalization
postal-code
EvilTeach
fuente
fuente
Respuestas:
Hojeando la página de códigos postales de Wikipedia , 32 caracteres deberían ser más que suficientes. Yo diría que incluso 16 caracteres son buenos.
fuente
Como ya planteó @ neil-mcguigan, wikipedia tiene una página decente sobre el tema. En base a eso, 12 caracteres deberían hacerlo: http://en.wikipedia.org/wiki/List_of_postal_codes
El artículo de wikipedia enumera ~ 254 países, lo cual es bastante bueno con respecto a la UPU (Unión Postal Universal) que tiene 192 países miembros.
fuente
¿Por qué declararía un tamaño de campo mayor que los datos reales que espera almacenar en él?
Si la versión inicial de su aplicación va a admitir direcciones de EE. UU. Y Canadá (lo que infiero del hecho de que menciona esos tamaños en su pregunta), declararía el campo como VARCHAR2 (9) (o VARCHAR2 ( 10) si tiene la intención de almacenar el guión en campos ZIP + 4). Incluso mirando las publicaciones que otros han hecho a los códigos postales de todos los países, VARCHAR2 (9) o VARCHAR2 (10) sería suficiente para la mayoría, si no para todos los demás países.
Más adelante, siempre puede ALTERAR la columna para aumentar la longitud si es necesario. Pero generalmente es difícil evitar que alguien, en algún lugar, decida ser "creativo" y rellenar 50 caracteres en un campo VARCHAR2 (50) por una razón u otra (es decir, porque quiere otra línea en una etiqueta de envío). También tiene que lidiar con la prueba de los casos límite (¿todas las aplicaciones que muestran un ZIP manejarán 50 caracteres?). Y con el hecho de que cuando los clientes recuperan datos de la base de datos, generalmente asignan memoria en función del tamaño máximo de los datos que se obtendrán, no de la longitud real de una fila determinada. Probablemente no sea un gran problema en este caso específico, pero 40 bytes por fila podrían ser una porción de RAM decente para algunas situaciones.
Además, también puede considerar almacenar (al menos para las direcciones de EE. UU.) El código postal y la extensión +4 por separado. En general, es útil poder generar informes por región geográfica y, con frecuencia, es posible que desee poner todo junto en un código postal en lugar de desglosarlo por la extensión +4. En ese momento, es útil no tener que intentar SUBSTR los primeros 5 caracteres del código postal.
fuente
Lo que le falta es una razón por la que necesita que el código postal se maneje de manera especial.
Si realmente no necesitas TRABAJAR con un código postal, le sugiero que no se preocupe por eso. Por trabajo, me refiero a realizar un procesamiento especial en lugar de solo usarlo para imprimir etiquetas de dirección, etc.
Simplemente cree tres o cuatro campos de dirección de VARCHAR2 (50) [por ejemplo] y deje que el usuario ingrese lo que quiera.
¿Realmente necesita agrupar sus pedidos o transacciones por código postal? No lo creo, ya que los diferentes países tienen esquemas muy diferentes para este campo.
fuente
¿Normalización? Los códigos postales pueden usarse más de una vez y pueden estar relacionados con nombres de calles o pueblos. Mesa (s) separada (s).
fuente
Los códigos postales canadienses tienen solo 6 caracteres, en forma de letras y números (LNLNLN)
fuente
El Reino Unido ha publicado estándares: Catálogo de estándares de datos del gobierno del Reino Unido
Dirección postal internacional:
La longitud del código postal del Reino Unido es:
fuente
Si desea integrar códigos postales en la base de datos, lo mejor es utilizar la base de datos geonames. Aunque es difícil de usar y comprender, es la base de datos geográfica más grande disponible gratuitamente para usuarios como nosotros.
Es más o menos probable que todas las demás bases de datos tengan los mismos datos y estructura. Simplemente eliminan información adicional / redundante de la base de datos. Si solo lo está haciendo para sistemas de baja carga, use sus servicios gratuitos, los límites son atractivos y proporcionan una interfaz más fácil usando json y ajax. Puedes ver los límites aquí
Para su información varchar (20) es suficiente para almacenar códigos postales
fuente