Ir para conteúdo

POWERED BY:

Arquivado

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

DarK FlameS

Foreign Key no PHPMyAdmin

Recommended Posts

galera, como uso o foreign key no php my admin??? como crio tabelas com esse recurso??? dei ma pesquisada e a unica coisa q descobri eh q a tabela tem q ser to tipo INNODB ... alguem pode me ajudar nisso ae?please HELP ME

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao para criar tabelas com chave estrangeiras tem que usar innodb mesmo

 

se quiser eu te ajudo a montar uma tabela com relacionamento, mas antes explique o que pretende fazer para podermos modelar o banco melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

so o que eu quero eh fazer com que uma tabela "alcance" o id da outra...

 

basicamente em uma das minhas tabelas eu tenho

 

id, titulo, mensagem

 

na outra vou ter

id_outra, id, nome, email ... eu quero q esse b que esta em negrito seja o da primeira tabela, saca????

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, beleza mas você quer aprender tbm sobre integridade referencial, efeito cascade restrict ?, por exemplo você grava um id relacionando a uma tabela dai você nao pode apagar esse campo porque ele esta apontando pra outra tabela ou efeito cascade quando você atualiza um campo ele automaticamente atualiza o campo relacionado ou delete depende do uso

 

bom um exemplo simples é você fazer assim:

 

tabela1

id_campo

 

tabela2

 

fk_campo int(11) unsigned default NULL,

FOREIGN KEY (fk_campo)

REFERENCES tabela1(id_campo)

 

onde fk representa o Foreign Key(fk) ou chave estrangeira

Compartilhar este post


Link para o post
Compartilhar em outros sites

a legal.... ja eh um bom começo... intaum seria interessante você explicar o que você citou ai tambem,a integridade referencia e o cascade restrict...mesmo assim valew, acho q isso ja da pra eu começar a fuçar(na hora de criar a tabela o PHPMyAdmin num tem nenhum lugar onde você "marque" e ele ja entenda que é pra ser foreign key??? só pra saber mesmo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal isso, vou testar pra ver como funciona isso, achei interessante integridade referencial, dai fui pesquisar e percebi que é uma proteção onde nao pode apagar um campo se ele foi salvo num relacionamento achei muito importante e com logica isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao criando um relacionamento com innodb ja esta criando uma integridade referencial o resto é você acrescentar tipo assim:

 

ON UPDATE CASCADE ON DELETE RESTRICT

 

nesse exemplo ele atualiaza automaticamente uma chave estrangeira se o campo for editado e nao deixa apagar o efeito cascade é modo cascata onde todas tabelas serao atualizadas automaticamente

 

ON UPDATE NO ACTION ON DELETE NO ACTION

 

nesse exemplo nao sera feito nada

 

ON UPDATE NO ACTION ON DELETE CASCADE

 

nesse exemplo quando deletar um campo todos os campos relacionados serao apagados automaticamente

 

e por ai vai antes de usar precisa estudar e ver uma modelagem perfeita

 

olha nao recomendo você usar phpmyadmin se você quer mesmo criar um banco descente

eu faço no notepad

 

mas no phpmyadmin se você usar chaves e banco innodb ele deixa você setar as referencias e efeitos cascades etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw fabyo.. foi de gigantesca ajuda... vlw mesmo.. agora é s´´o estudar e ver como funciona direitin... vlw bro

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom eu ja tava pensando em criar um tutorial sobre isso, dai vou criar e te passo o link depois

Pessoal,

 

 

Me digam como posso fazer uma ligacao entre as tabelas?

Não to conseguindo fazer um formulario, de modo que eu consiga inserir esses dados e depois visualize....

 

Tenho um banco

com as seguintes tabelas e campos

 

Noticias

not_id

not_titulo

not_conteudo

not_data

not_fonte

not_status

not_img_id

not_setor_id

not_cat_id

not_usuario_id

 

categoria

cat_id

cat_destaq

cat_quad1

cat_quad2

cat_quad3

cat_quad4

 

imagem

img_id

imagem

 

setor

set_id

set_adm

set_ci

set_edu

set_espl

set_fin

set_gp

set_gm

set_ma

set_obras

set_plan

set_ps

set_saude

set_tur

 

usuarios

usu_id

usu_nome

usu_email

usu_senha

usu_data

 

Help.... :huh: :blink: :blink: :blink: http://forum.imasters.com.br/public/style_emoticons/default/upset.gif http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma dica nao precisa abreviar tanto nome de campos e tabelas o banco suporta nomes ate 64 bytes

 

e outra coisa nome de campos dentro de uma tabela sao referenciados na propria tabela entao

 

tabela noticias

id

 

tabela categorias

id

 

esses id nao serao confundidos pelo banco de dados dai nao precisa colocar algo como

 

tabela noticias

not_id

 

isso é uma dica porque nomes sao muito confusos e só mesmo quem fez consegue entender se outro programador pegar pra fazer manutenção ele vai sofrer, a ha nao ser que você fazer um mapa ou escrição das tabelas

mas como falei nada melhor como dar nomes distintos e faceis de entender e de trabalhar

 

olha como fica de facil entendimento pra qualquer pessoa

 

Noticias

id_noticia

titulo

conteudo

data

fonte

status

fk_imagem

setor_id

fk_categoria

fk_usuario

 

e é só um exemplo porque o banco precisa ser bem modelado e nao pode quebrar as regras FN( Formas Normais) que no seu caso você ja quebrou

 

se precisar de ajuda numa modelagem nova só falar, caso nao seja possivel eu te ajudo no que puder

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabio se você puder me ajudar, gostaria sim!obrigada http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

só uma dica nao precisa abreviar tanto nome de campos e tabelas o banco suporta nomes ate 64 bytese outra coisa nome de campos dentro de uma tabela sao referenciados na propria tabela entaotabela noticiasidtabela categoriasidesses id nao serao confundidos pelo banco de dados dai nao precisa colocar algo comotabela noticiasnot_idisso é uma dica porque nomes sao muito confusos e só mesmo quem fez consegue entender se outro programador pegar pra fazer manutenção ele vai sofrer, a ha nao ser que você fazer um mapa ou escrição das tabelasmas como falei nada melhor como dar nomes distintos e faceis de entender e de trabalharolha como fica de facil entendimento pra qualquer pessoaNoticiasid_noticiatituloconteudodatafontestatusfk_imagemsetor_idfk_categoriafk_usuarioe é só um exemplo porque o banco precisa ser bem modelado e nao pode quebrar as regras FN( Formas Normais) que no seu caso você ja quebrouse precisar de ajuda numa modelagem nova só falar, caso nao seja possivel eu te ajudo no que puder

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.