Ir para conteúdo

POWERED BY:

Arquivado

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

gui117

Relacionar tabelas

Recommended Posts

Olá pessoal,

 

Estou fazendo um sistema de comentários para meu site, e preciso de ajuda pra fazer um banco de dados relacional.

 

A idéia seria que cada notícia tivesse vários comentários (1:N)

 

Então, o esquema seria relacionar uma tabela ‘inserir’ (que se refere às notícias) com a tabela "comentario".

 

Da forma que eu fiz os mesmos comentários aparecem em todas as notícias.

 

Não consigo individualizar os comentários. Como faço?

 

 

 

Segue as estruturas das tabelas:

 

 

-- Estrutura da tabela `inserir`
--
CREATE TABLE IF NOT EXISTS `inserir` (
 `id` int(100) NOT NULL auto_increment,
 `titulo` varchar(10000) collate utf8_unicode_ci NOT NULL,
 `noticia` text collate utf8_unicode_ci NOT NULL,
 `resumo` text collate utf8_unicode_ci NOT NULL,
 `dia` int(2) NOT NULL,
 `mes` int(2) NOT NULL,
 `ano` int(4) NOT NULL,
 `comentario` varchar(100) collate utf8_unicode_ci NOT NULL,
 PRIMARY KEY  (`id`),
 KEY `comentario` (`comentario`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=63 ;

 

 

-- Estrutura da tabela `comentario`
--
CREATE TABLE IF NOT EXISTS `comentario` (
 `id` int(100) NOT NULL auto_increment,
 `autor` varchar(100) collate utf8_unicode_ci NOT NULL,
 `email` varchar(100) collate utf8_unicode_ci NOT NULL,
 `comentario` varchar(100) collate utf8_unicode_ci NOT NULL,
 PRIMARY KEY  (`id`),
 KEY `comentario` (`comentario`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

 

A pergunta é tão boba assim que não merece nem respostas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola.. nao, a pergunta nao é boba.. mas calma..

olhando rapidamente, falta você fazer o relacionamento entre as tabelas.

 

eu faço assim:

vamos imaginar 2 tabelas, 1 p/ noticias e outra p/ comentarios, ok?

na 1ª tabela vai existir 1 campo chave primaria autoincrement, ok?

vamos chamar esse campo de id_noticia;

na 2ª tabela você precisará ter 1 campo chave estrangeira q será esse "id_noticia"

então - por exemplo - nos comentarios, 1, 3 e 7 você poderá ter o id_noticia nº 3, etc...

ate ai beleza?

 

ai fica simples; as consultas, na pratica, seguirão essa lógica:

 

select campos from tabela de noticias
where id_noticia = (1 parametro, 1 variavel)

ai eu prefiro criar 1 outra seção (1 div)

onde é só relacionar os comentários (claro, da tabela de comentários)

q tenham o mesmo id_noticia já selecionado, ex:

 

select campos
from tabela de comentarios
where id_noticia = (1 parametro, 1 variavel)

Basicamente é isso, agora pesquise sobre "JOIN"(junção de tabelas) ai você pode criar 1 consulta só q já t traga os resultados q você quer, ok?

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.