Ir para conteúdo

POWERED BY:

Arquivado

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

S t o n e

Problema ao criar foreign key

Recommended Posts

Faz um favor Stone, coloque o script de criação completo de sua tabela pra darmoas uma analisada.

 

Abraços, Guilherme.

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE `foto` (

`id` int(11) NOT NULL auto_increment,

`original` varchar(200) NOT NULL,

`thumb` varchar(200) NOT NULL,

`descricao` varchar(100) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1

 

CREATE TABLE `imagem` (

`id` int(11) NOT NULL auto_increment,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1

está ai! valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu, qual tabela vai receber a FK, a imagem certo?

Você tem que criar um atributo nesta tabela imagem para ser o FK, por exemplo, id_foto.

 

 

CREATE TABLE `foto` (

`id_foto` int(11) unsigned NOT NULL auto_increment,

`original` varchar(200) NOT NULL,

`thumb` varchar(200) NOT NULL,

`descricao` varchar(100) NOT NULL,

PRIMARY KEY (`id_foto`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

 

--Seta o atributo id_foto como index primeiro. O tipo da tabela deixe como InnoDB.

 

 

CREATE TABLE `imagem` (

`id` int(11) NOT NULL auto_increment,

`id_foto` int(11) unsigned NOT NULL,

PRIMARY KEY (`id`),

KEY `id_foto` (`id_foto`),

CONSTRAINT `FK_foto` FOREIGN KEY (`id_foto`) REFERENCES `foto` (`id_foto`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

 

 

Testa aí e me fala.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim:

 

select

from imagem a, foto b

where a.id_foto = b.id_foto

 

Onde que você define qual foto é do evento tal?

você precisa ter esta informacao, dái ali na clausula where você coloca um and evento = xx

 

Certo?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim vou explicar oque quero fazer,

 

vou fazer uma base diferente,

 

tabela EVENTO, com id do evento, descricao do evento, e fotos do evento(que serão puxadas da table fotos)

tabela FOTOS, id da foto, evento da foto, descricao da foto.

 

tem como você me explicar como fazer isso?

 

Obrigdado por tudo :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugiro que faça assim:

Crie a tabela evento, com id do evento auto incremento, nome, data, etc.

Crie um atributo na tabela foto como o numero do evento, como FK.

 

Ai você faz a query assim:

 

Select 'seus campos'

from evento a, fotos b, imagem c

where a.id_evento = b.id_evento

and b.id_foto = c.id_foto

and a.id_evento = 'numero do seu evento'

 

 

Certo amigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia amigo, concegui fazer a chave estrangeira, criei a tabela EVENTO com eve_codigo, eve_nome e eve_foto e a tabela FOTO com fot_id, foto_original, fot_thumb e relacionei eve_foto com fot_id da tabela FOTO, agora estou com dúvida em como faço um select no EVENTO para trazer os resultados da FOTO.

 

Obrigado :D

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.