Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

montano

Relacionamento FK

Recommended Posts

Boa tarde,

tenho uma tb_cidades.

e uma tb_cliente, onde tem um campo cod_cidade ( FK ).

 

No meu formulario de INSERT eu tenho um select que me lista as cidades da tb_cidade, ao selecionar uma cidade eu pego o cod dessa cidade e insiro ela no campo cod_cidade da tb_cliente.

 

Minha duvida é, quando eu fazer o select desse campo cod_cidade, ele vai me retornar o codigo ou o nome da cidade?

Nao relacionei as tabelas porque nao achei onde no phpmyadmin, e tambem nao achei onde declarar que cod_cidade na tb_cliente é FK, tem como escolha, primary, unique, index. minha tabela é MYISAM.

 

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu não entendi muito bem, mais tu pode fazer o relacionamento na query com o INNER JOIN.

 

mysql_query("SELECT tabela.campo, tabela2.campo FROM tabela,tabela2 INNER JOIN tabela.campo = tabela2.campo")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá montano,

 

Você pode pesquisar sobre: INNER JOIN, LEFT JOIN ou RIGHT JOIN. É o mais apropriado para tua situação.

 

Obs.: Nunca esqueça que as suas tabela deverão ser do tipo INNO DB para tal relacionamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao tem como fazer isso pelo BD?

 

Quero fazer o seguinte.

 

tb_cidades

cod <- 23

cidade <- Sao Paulo

 

tb_cliente

cod <- 12

nome <- joao

cod_cidade<- 23

 

Para que quando eu mude digamos: Agora que chamar Sao Paulo de 'SP', nao precise mudar na tb_cliente todos clientes que estavam com cidade = Sao Paulo.

 

Isso pode ser feito direto no BD?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se é "muito correto" mudar o valor de chave primária, mas para acontecer o que você está querendo..

você tem que colocar o tipo da tabela como InnoDb.. e criar uma chave estrangeira mais ou menos assim na tabela cliente.

 

ALTER TABLE `tb_cliente` ADD CONSTRAINT `fk_cliente_cidade` FOREIGN KEY `fk_cliente_cidade` (`cod_cidade`)
    REFERENCES `tb_cidades` (`cod`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE; -- o efeito em cascata fara com que seja alterado tbm os campos de relacionamento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas,

 

Eu estou com um problema de redundancia no meu BD.

 

Preciso fazer isso:

 

|cod |Cidade|
|01  |SP    |

|cod |nome |cidade|
|02  |Lucas|01|

Para quando eu mudar de SP para Sao Paulo eu atualizar o cadastro do lucas. entende?

 

no momento esta assim:

 


|cod |Cidade|
|01  |SP    |

|cod |nome |cidade|
|02  |Lucas|SP|

Como eu faço isso? tem como fazer só relacionando campos pelo phpmyadmin ou isso tem que ser programado no meu processo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ueh, se você sabe o problema pq não resolve?

 

auhuha

 

o correto é assim:

 

|cod |Cidade|
|01  |SP    |

|cod |nome |cidade|
|02  |Lucas|01    |

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas,

 

 

Eu sei o problema, minha duvida era se eu precisava fazer isso programando ou o BD MYSQL, me fornece alguma ferramenta de relacionamento sem precisar ter que por isso na programação.

 

^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas,

 

 

Eu sei o problema, minha duvida era se eu precisava fazer isso programando ou o BD MYSQL, me fornece alguma ferramenta de relacionamento sem precisar ter que por isso na programação.

 

^^

 

faz o código SQL mesmo uahuahua

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.