[Ajuda]Entender insert com Chave estrangeira

2 respostas
B

Boa noite a todos,

Galera estou com uma dúvida sobre um insert em tabelas, é o seguinte:

Tenho uma tabela Cliente com seus campos básicos(cod_cli,cpf…) e uma tabela cidade(cod_cid,nome,est_cod) e uma tabela estado (cod_est , nome, uf)

Então a tabela cidade recebe o código do estado como chave estrangeira… até ai ok, mas a minha dúvida é a seguinte parte ao fazer o cadastro de um cliente.

Vou fazer o insert dos campos dels normal , ai ele recebe o campo cod da tabela cidade como FK, mas para a tela de cadastro não posso fazer o usuario fazer esse cadastro adicionando o cod da cidade e sim adicionar o nome dela e estado, como faço essa associação no insert para que insira o cod da cidade na tabela, alguém sabe me explicar?

Agradeço desde já.

OBS: Talvez tenha ficado um pouco confuso, posso fornecer mais algumas informações.

2 Respostas

di.magdaleno

Você poderia criar um método que busca no banco de dados o ID da cidade a partir do nome dela ai no momento do INSERT ao invés de colocar o nome da cidade você chama esse método.

douglaskd

bvinicius:
Boa noite a todos,

Galera estou com uma dúvida sobre um insert em tabelas, é o seguinte:

Tenho uma tabela Cliente com seus campos básicos(cod_cli,cpf…) e uma tabela cidade(cod_cid,nome,est_cod) e uma tabela estado (cod_est , nome, uf)

Então a tabela cidade recebe o código do estado como chave estrangeira… até ai ok, mas a minha dúvida é a seguinte parte ao fazer o cadastro de um cliente.

Vou fazer o insert dos campos dels normal , ai ele recebe o campo cod da tabela cidade como FK, mas para a tela de cadastro não posso fazer o usuario fazer esse cadastro adicionando o cod da cidade e sim adicionar o nome dela e estado, como faço essa associação no insert para que insira o cod da cidade na tabela, alguém sabe me explicar?

Agradeço desde já.

OBS: Talvez tenha ficado um pouco confuso, posso fornecer mais algumas informações.

vinicius, há 3 maneiras de se fazer isso

não sei se sua APP é desktop ou web mas o conceito serve para as duas:

1° maneira -> usuário coloca o CEP, e no momento que ele sai do campo de texto, seu sistema faz uma busca no BD e preenche Estado/Cidade/Rua e o usuário digita o numero da casa. (esta tabela de Estado/Cidade/Rua você encontra o script no site do correio, com todas as ruas ja cadastradas)

2° maneira -> todos os comboBox possuem value/texto, quando for preencher o combo você coloca o cod_est no value, e a Descrição no texto.
seu sistema terá 2 combos se for Nacional:
[Estado+] ai abrir a tela seu sistema faz uma consulta por todos os estados. quando o usuário “selecionar” um estado, seu sistema irá preencher o combo Cidade com todas as cidades que possuem o cod_est igual ao estado selecionado.
[Cidade+] usuário seleciona a cidade.
[Logradouro]terá um campo rua ou logradouro, onde o usuário irá digitar o logradouro dele.
[numero] número da casa.

quando o usuário terminar você terá estes dados: cod_est,cod_cid, Logradouro,numero, você pega essas informações e insere em uma tabela no Bd chamada Estado(cod,cli,est_cod,cod_cid,logradouro,numero)

3° maneira -> sem relacionamento algum: usuário digita tudo na mão sem auxilio de ComboBoxes e tudo vai para uma tabela Estado(cod_cli,Estado,Cidade,Logradouro,Numero)

dicas:

a 1° Opção é usada quando o usuário esta no cadastro dele.

a 2° Opção é usada quando o usuário fazendo alguma busca seja por pessoas, produtos, onde ele poderia especificar qual amplo seria sua busca

a 3° Opção são em casos muitos especificos, ou sistemas mais simples.

Criado 28 de março de 2013
Ultima resposta 28 de mar. de 2013
Respostas 2
Participantes 3