Domanda

Sto ricreare una parte della banca dati della mia azienda perché non soddisfa le esigenze future. Attualmente abbiamo soprattutto un file flat e alcuni tavoli disgiunti che non sono mai stati pienamente realizzati.

Il mio modo di pensare è che abbiamo un tavolo per ogni categoria tranne forse il tavolo zip, che può servire da collegare tutto tavola insieme. Si prega di fare riferimento alla immagine qui sotto:

diagramma di database http://www.freeimagehosting.net/uploads/248cc7e884.jpg

Una cosa che sto pensando è la rimozione del tavolo zip e solo mettendo il codice postale nella tabella zipstocities dato che il codice di avviamento postale è quasi unico e quindi indicizzare la tabella sul codice postale. L'unico inconveniente è codice postale deve essere un varchar prendersi cura di codici postali con zeri. Voglio solo sapere se c'è un difetto nella mia logica.

È stato utile?

Soluzione

Non so gli Stati Uniti CAP e il sistema di divisione territoriale bene, ma suppongo che sia un po 'come quello tedesco.

  • Uno stato ha molte contee.
  • Una contea ha molte città.
  • Una città ha molti codici di avviamento postale.

Quindi vorrei utilizzare il seguente schema.

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

fisso per più città per CAP.

Altri suggerimenti

Una cosa che si dovrebbe essere consapevoli è che non tutte le città sono nelle contee. In Virginia si sia in una città o contea, ma mai entrambe le cose.

Osservando il diagramma che hai, la tabella di stato è l'unico dei 4 tavoli esterni che è veramente necessario. Le tabelle di ricerca con solo un ID e un valore singolo non vale la pena. Queste relazioni sono progettati per rendere un singolo valore nella tabella principale (ziptocities) si riferiscono a un insieme di dati correlati nella tabella di ricerca (Stati).

È necessario chiedersi perché vi preoccupate per contee. In molti stati negli Stati Uniti, hanno poca importanza oltre la tradizione e le mappe.

L'altra questione sarà quanto sia importante sarà che l'indirizzo sia preciso? Quanti morti ci saranno se le lettere importanti non vengono consegnati in modo tempestivo (forse molti se la lettera è di circa prescrizione di droga ricorda!)

Probabilmente si vuole pensare di utilizzare i dati del servizio postale, possibilmente utilizzando un prodotto che consente di correggere gli indirizzi. In questo modo, quando si ottiene un buon indirizzo, sarete certi la posta può essere consegnato lì - perché il servizio postale avrà detto così

Sembra che ci siano difetti nel vostro processo e sia la vostra logica.

Vi suggerisco di smettere di pensare a tabelle e relazioni per un attimo. Invece, pensare a fatti. Fate una lista di indirizzi validi che il database deve supportare. Molte sorprese vi aspettano.

Non confondere un indirizzo con un'etichetta postale. Non sono affatto la stessa cosa. Prendere in considerazione la modellazione vettori, anche. Negli Stati Uniti, se un indirizzo è valido dipende dal vettore. Ad esempio, la mia casella postale è un indirizzo valido quando il vettore è l'USPS, ma non quando il vettore è UPS.

Per risparmiare tempo, si potrebbe provare la navigazione alcuni formati di indirizzo internazionali su bitboost .

Sarà il vostro lavoro logica se due paesi capita di avere lo stesso codice di avviamento postale? Questi due sarebbero collegamenti a diversi città in quel caso. qui ci sono alcuni punti da considerare

  1. Vuoi utilizzare codice postale come una sorta di chiave primaria in indirizzo? (a leasing la città, stato e paese campi). In questo caso, si può avere codice postale, città, stato, nazione, in un tavolo. Creare indici città, stato ecc .. (si dispone di una funzionale dipendenza del modulo zipcode-> paese, stato, città. Questo come ho detto, non può essere vero in tutto paesi.
  2. Se l'auto è popolamento la vostra unica preoccupazione, creare un vista materializzata e utilizzarlo.

Mi raccomando di leggere 'modelli di Data Model' di David C. Hay.

Ma non ogni persona che ha una richiesta medica valida è richiesto dalla legge per rimanere negli Stati Uniti fino a quando è risolta la richiesta. Le persone si spostano.

San Francisco è una città della California; non è una città in Alabama. Il vostro disegno a prevenire le voci senza senso come "San Francisco, AL"?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top