Pregunta

Estoy volviendo a crear una parte de la base de datos de mi empresa, ya que no cumple con las necesidades futuras. Actualmente tenemos sobre todo un archivo plano y algunas mesas disociadas que nunca fueron plenamente.

Mi forma de pensar es que tenemos una tabla para cada categoría excepto tal vez la tabla cremalleras, que puede servir como conectarlo todo mesa juntos. Por favor refiérase a la imagen de abajo:

Diagrama de base de datos http://www.freeimagehosting.net/uploads/248cc7e884.jpg

Una cosa que estoy pensando es la eliminación de la tabla de cremallera y sólo poner el código postal en la tabla zipstocities ya que el código postal es casi único y la indexación de la tabla en el código postal. El único inconveniente es el código postal tiene que ser un varchar para cuidar de códigos postales con ceros a la izquierda. Sólo quiero saber si hay una falla en mi lógica.

¿Fue útil?

Solución

No sé el Código postal de Estados Unidos y el sistema territorial devisiones bien, pero supongo que es algo así como el alemán.

  • Un estado tiene muchos condados.
  • Un condado tiene muchas ciudades.
  • Una ciudad tiene muchos códigos postales.

Por lo tanto me gustaría utilizar el siguiente esquema.

ZipCodes          CityZipCodes
------------      ----------------      Cities
ZipCode (PK) <─── ZipCode (PK)(FK)      -----------
                  City    (PK)(FK) ───> CityId (PK)
                                        Name
                                        County (FK) ───┐
                                                       │
                                                       │
                                     Counties          │
                                     -------------     │
              States                 CountyId (PK) <───┘
              -----------------      Name               
              StateId      (PK) <─── State    (FK)
              Name
              Abbreviation

fijo para varias ciudades por código postal.

Otros consejos

Una cosa que debe tener en cuenta es que no todas las ciudades están en condados. En Virginia se encuentra en cualquiera de una ciudad o condado, pero nunca ambos.

Mirando el diagrama que tenga, la tabla de estados es la única de las 4 mesas en el exterior que es realmente necesario. tablas de búsqueda con sólo un ID y un valor único no vale la pena el esfuerzo. Estas relaciones están diseñados para hacer un solo valor en la tabla principal (ziptocities) se refieren a un conjunto de datos relacionados en la tabla de búsqueda (estados).

Tendrá que preguntarse por qué se preocupan por condados. En muchos estados de los EE.UU., tienen poca importancia más allá de la tradición y mapas.

La otra pregunta será lo importante será que la dirección sea correcta? ¿Cuántas muertes habrá si las letras importantes no se entregan de manera oportuna (posiblemente muchos, si la letra es acerca de medicamentos recetados recuerda!)

Es posible que desee considerar el uso de los datos del Servicio de Correos, posiblemente usando un producto que corrige direcciones. De esta manera, cuando se obtiene una buena dirección, usted estará seguro el correo no se puede entregar - debido a que el Servicio Postal le habría dicho

Parece que hay fallas en tanto su proceso y su lógica.

Le sugiero que deje de pensar acerca de las tablas y relaciones para un momento. En su lugar, piense en los hechos. Haga una lista de direcciones válidas que su base de datos necesarios para apoyar. Muchas sorpresas le esperan.

No se debe confundir una dirección con una etiqueta de envío. No son en absoluto lo mismo. Considere el modelado de los transportistas, también. En los EE.UU., si una dirección es válida depende del portador. Por ejemplo, mi casilla de correo es una dirección válida cuando el portador es el USPS, pero no cuando el portador es UPS.

Para ahorrar tiempo, puede intentar navegar por algunos formatos de dirección internacionales en bitboost .

¿Su trabajo lógica si dos países sucede que tiene el mismo código postal? Estos dos se palpa distintas ciudades en ese caso. He aquí algunos puntos a considerar

  1. ¿Quieres usar código postal como una especie de la clave principal en la dirección? (a arrendar la ciudad, estado y país campos). En ese caso, puede tener código postal, ciudad, estado, país en una mesa. Crear índices en la ciudad, estado etc .. (tiene una funcionalidad dependencia de la forma zipcode-> país, estado, ciudad. Esta como he dicho puede no ser cierto en todos países.
  2. Si es poblar automático su única preocupación, crear una materializado vista y utilizarlo.

Yo recomendaría leer 'Los patrones de modelo de datos' por David C. Hay.

Sin embargo, no toda persona que tiene una demanda médica válida se requiere por ley a permanecer en los EE.UU. hasta que se resuelva la reclamación. La gente se mueve.

San Francisco es una ciudad en California; que no es una ciudad en Alabama. Impide su diseño entradas sin sentido como "San Francisco, AL"?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top