Pergunta

Estou re-criando uma parte da base de dados da minha empresa, porque não atender às necessidades futuras. Atualmente, temos principalmente um arquivo simples e algumas mesas dissociadas que nunca foram plenamente realizados.

A minha maneira de pensar é que temos uma tabela para cada categoria, exceto talvez a tabela de fechos de correr, o que pode servir como um conectar tudo mesa juntos. Consulte a imagem abaixo:

banco de dados Diagrama http://www.freeimagehosting.net/uploads/248cc7e884.jpg

Uma coisa que eu estou pensando é remover a mesa de zip e apenas colocar o código postal na tabela de zipstocities desde o CEP é quase único e, em seguida, a indexação da tabela da CEP. O CEP única desvantagem é tem que ser um varchar para cuidar de zip códigos com zeros à esquerda. Só quero saber se há uma falha na minha lógica.

Foi útil?

Solução

Eu não sei o CEP dos EUA e do sistema de divisão territorial bem, mas eu suponho que é um pouco como a alemã.

  • Um estado tem muitos municípios.
  • Um concelho tem muitas cidades.
  • A cidade tem muitos códigos postais.

Assim que eu usaria o seguinte 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

Fixed para várias cidades por ZIP código.

Outras dicas

Uma coisa que você deve estar ciente de que nem todas as cidades estão em condados. Na Virgínia você estiver em qualquer uma cidade ou município, mas nunca ambos.

Olhando para o diagrama que você tem, a tabela de estado é o único dos 4 mesas externas que é realmente necessário. Lookup tabelas com apenas um ID e um valor único não vale a pena o esforço. Essas relações são projetados para fazer um único valor, nos principais mesa (ziptocities) referem-se a um conjunto de dados relacionados na tabela de pesquisa (estados).

Você precisa se perguntar por que você se preocupa com municípios. Em muitos estados nos EUA, eles têm pouca importância além da tradição e mapas.

A outra questão será o quão importante será que o endereço de ser preciso? Quantas mortes haverá se cartas importantes não são entregues em tempo hábil (possivelmente muitos, se a letra é sobre drogas de prescrição lembra!)

Você provavelmente vai querer pensar sobre o uso de dados do Serviço Postal, possivelmente usando um produto que corrige endereços. Dessa forma, quando você recebe um endereço de bom, você vai ter a certeza de o e-mail pode ser entregue lá - porque o Serviço Postal vai ter dito

Parece haver falhas em ambos o seu processo e sua lógica.

Eu sugiro que você parar de pensar sobre tabelas e relacionamentos por um momento. Em vez disso, pense sobre os fatos. Faça uma lista de endereços válidos que o seu banco de dados precisa de apoio. Muitas surpresas esperam por você.

Não confunda um endereço com uma etiqueta de endereçamento. Eles não são de todo a mesma coisa. Considere a modelagem operadoras também. Nos EUA, se um endereço é válido depende da operadora. Por exemplo, minha caixa de PO é um endereço válido quando o portador é o USPS, mas não quando o transportador é UPS.

Para economizar tempo, você pode tentar navegar alguns formatos de endereço internacionais em bitboost .

Será que a sua lógica de trabalho se dois países tiverem o mesmo código postal? Estes dois estariam apontando para diferentes cidades nesse caso. Aqui estão alguns pontos a considerar

  1. Você quer usar CEP como uma espécie de chave primária em endereço? (pelo locação a cidade, estado e país Campos). Nesse caso, você pode ter CEP, cidade, estado, país em um mesa. Crie índices na cidade, estado etc .. (você tem um funcional dependência do formulário zipcode-> país, estado, cidade. Esta como eu disse pode não ser verdade em toda países.
  2. Se auto povoamento é sua única preocupação, crie um visão materializada e usá-lo.

Eu recomendo a leitura 'padrões do modelo de dados' por David C. Hay.

Mas nem toda pessoa que tem uma reivindicação médico válido é exigido por lei para permanecer nos EUA até que a reclamação seja resolvida. As pessoas se movem.

San Francisco é uma cidade na Califórnia; não é uma cidade no Alabama. Será que o seu projeto evitar entradas sem sentido como "San Francisco, AL"?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top