Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Duvida sobre a modelagem de um sistema!

OPA beleza bom dia a todos, cara queria que os programadores experientes me falariam como fazer a lógica da tabela de cidade de estado e de cep. Porque to criando uma tabela de cidade e nela tem o nome e a uf e o código, e depois tenho a minha tabela de estado que tem o estado e o codigo, depois queria uma de endereço com cep logradouro tipoLogradouro, mais queria baixar com todos os cep do brasil, mais todas que vem com o cep a cidade está junto a uf também ai me pergunto essa seria a lógica correta? Ter uma tabela com todos os campos doque 3 separadas? Eu acredito que não né?

9 respostas

Olá Alisson,

Sua abordagem está no caminho correto, fazer tudo em uma tabela só não ficaria legal, você estaria repetindo diversas vezes a mesma informação, por exemplo, sempre que cadastrar um novo endereço terá que escrever sempre o estado e o uf, a abordagem de colocar esses dados em uma tabela separada é bem melhor, depois é só vincular pelo código.

Eu acho interessante criar uma tabela CEP, e nela colocar um vínculo com a tabela de cidades, e armazenar o endereço (partindo do ponto que você terá o nome da rua também), e depois na tabela endereço você iria vincular somente o campo código da tabela CEP.

Mas claro isso depende muito da finalidade do seu sistema sistema, eu fiz uma pequena modelagem aqui partindo do ponto que você iria cadastrar na tabela de endereços o número do endereço, mas é complicado de montar a modelagem sem saber a finalidade completa do sistema, claro que isso é uma informação um pouco complicado de passar.

Mas no geral acho que sua abordagem está indo pelo caminho certo.

Espero ter ajudado, modelar uma base de dados de um sistema requer horas de análise sobre os requisitos solicitados.

Certo Joel, então pensei a mesma coisa que você, mais o dificil é achar no google a tabela de cep com as colunas corretas. tabela para baixar com todos os campos juntos :(

Isso é um pouco complicado pois essas informações são vendidas em alguns lugares, tem um curso aqui de Java Brasil que, se não me falha a memória, fala um pouco sobre esses dados de CEP é como conseguir.

Joel esse curso teria disponivel aqui na alura? obrigado

solução!

Tem sim, não sei se ele te ajudará completamente, mas talvez ajude com a obtenção de informações.

https://cursos.alura.com.br/course/java-brasil-lidando-com-datas-numeros-documentos

Joel massa, acabei de ver o curso, eu acho que se em um sistema deixar apenas a tabela de cidade com estado já é o necessario né? Depois na hora de cadastrar um cliente usando esse viaCep daria pra digitar o cep e renderizar os campos. Daria certo sera?

Sim, você pode criar os campos e carregar utilizando o webservice do viacep para carregar os dados, depois só armazenar as informações na sua base.

Para trabalhar com CEP, a solução mais fácil seria o que foi comentado acima,ou seja, usar um webservice público de CEP.

Aqui tem um exemplo de como usar ele um outro webservice de CEP. No exemplo, eu fiz o consumo usando Javascript.

http://www.dbins.com.br/dica/pesquisando-cep-usando-ajax

A base do CEP pode ser comprada no site dos Correios, lembro que vinham atualizações durante 1 ano. Se não me engano, o link para comprar é este:

https://cursos.alura.com.br/forum/topico-duvida-sobre-a-modelagem-de-um-sistema-33991

No caso deles, a base vem segmentada por estado.

No nosso caso, fizemos duas tabelas. Montamos uma tabela somente com as localidades (tem nas tabelas enviadas pelos Correios), e consolidamos cada tabela por estado numa tabela de logradouros.

Quando vamos pesquisar, pesquisamos primeiro na tabela de localidades. Se a cidade for muito pequena, o CEP é único para todas as ruas. Caso o CEP não seja localizado nesta tabela, então procuramos na tabela de logradouros. Com base no resultado desta pesquisa, atualizamos a tabela de endereços em nossos cadastros.

Opa Daniel obrigado, você sabe aonde posso ver um curso passo a passo para fazer isso com java?