Executando verificação de segurança...
1

@meira você consegue exemplificar quais são as ligações entre essas tabelas?
Se eu consegui entender bem, o que está acontecendo é que para cada novo cadastro que contém essas informações está duplicando as informações dentro do banco de dados correto?

Essa tabela do seu print seria uma tabela para armazenar as cidades?

Aparentemente você possui uma tabela para cada um desses modelos que você citou. Seria isso mesmo? Uma tabela para cidade, uma para estado e outra para endereço. Correto?

Se for isso mesmo, você poderia ter uma tabela extra que armazenaria todas as referências de chave estrangeira das outras tabelas que citei acima:

endereco_usuario
id | endereco_fk |

onde essa tabela faz referencia ao endereço em formato de chave estrangeira, que por sua vez faz referência à cidade

endereco
id | cidade_fk

onde essa tabela faz referência à cidade em formato de chave estrangeira e por fim, a cidade faz referênca ao estado

cidade
id | estado_fk

Perceba que aqui você terá uma tabela de estado contendo todos os estados do Brasil por exemplo, uma tabela de cidade que faz referência aos estados (onde você terá várias cidades para um mesmo estado por exemplo), uma tabela de endereços que faz referência a uma cidade (também podendo conter várias cidades para a mesma cidade) e a última, caso seja realmente isso, poderia ser uma tabela de endereco_usuario onde vc faz referência somente a primary key de um endereço.

Acho que ficaria algo assim

1 estado ----------> N cidades
1 cidade ----------> N enderecos

No final, se vc souber o ID de um endereço, você saberá a FK de uma cidade e na cidade vc sabe a FK do estado.

Se precisar, existe DB Diagram, que te ajuda no mapeamento de relações entre as tabelas

Carregando publicação patrocinada...
1

O banco ta assim, aqui da pra ter uma ideia melhor: https://prnt.sc/PP9iuleWl-XD

Ali na tabela endereço estou declarando a rua, mas poderia criar uma tabela para rua e deixar a de endereco para armazenar as fks.

Uma outra duvida, seria possivel não ter de cadastrar todas as cidades do Brasil em uma tabela? Eu queria fazer algo que conforme seja cadastrado pelo user, a cidade ou rua, o proximo cadastro ja buscasse desse antigo, sem duplicar.

1

Boaa entendi. Acho que vc fez mais ou menos como eu falei então.
Tem sim. O que você pode fazer é o seguinte: quando o usuário procurar por um endereço, vc pode ir até o seu banco e buscar por ele. Caso o seu banco não tenha o endereço procurado, você pode consumir alguma API de endereços (acho que a Brasil API deve conter o que vc precisa ), pegar as informações que essa API te retornar e por fim vc salva no seu banco de dados.
Conseguiu entender o que eu quis dizer?

1

Eu estou usando uma api que ao botar o CEP, ja busca todas as informações de cidade, estado, rua etc. Acho que vou tentar utilizar o comando select para pesquisar no banco se ja tem o cadastro, e se houver eu só atribuo a fk. Obrigado pleas dicas ai, tmj!