• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

2 mensagens neste tópico

Olá pessoal,

Tenho aqui umas dúvidas quanto às relações entre tabelas no phpmyadmin.

Neste momento tenho 3 tabelas - "users", "parques" e "reviews".

Para não complicar vou só descrever mais ou menos a duas útlimas..

Tabela PARQUES:

  • id - primary key
  • nome
  • morada

Tabela REVIEWS:

  • id - primary key
  • id_parque - foreign key
  • id_autor - foreign key
  • rating
  • review

Agora, o q eu quero é fazer a seguinte ligação na BD:

REVIEWS(id_parque) -> PARQUES(id)

..Fazendo com que ao apagar um parque por exemplo, fossem apagados todos os reviews associados a esse parque (com id_parque = id). Ou seja.. "ON DELETE CASCADE".

Eu sei que isto se pode fazer mesmo em php e há mta gente apologista dessa prática, fazer os constraints todos no código, mas eu acho bem mais prático se a base de dados fizer o trabalho por nós!

Agora, no phpmyadmin eu já vi que há lá um relation view, mas ainda não percebi muito bem se aquilo cria mesmo as foreign keys ou se é só um constraint para quando se insere dados a partir do próprio phpmyadmin.

Já tentei também fazer um ALTER TABLE (FOREIGN KEY ....) mas sem sucesso, ainda não domino a sintaxe. Gostava era de poder fazer isto com a facilidade que se faz no access por ex.!

PS: as tabelas sao todas InnoDB (já sei que só estas em mysql é q suportam foreign keys).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok esqueçam.. ninguém respondeu mas entretanto já consegui, acho que o problema tava na sintaxe, alguém um dia tiver curiosidade aqui está:

ALTER TABLE reviews ADD FOREIGN KEY(parque_id) REFERENCES parques (id) ON DELETE CASCADE;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora