Dúvida pra criar banco de dados para aplicações estilo fórum

1 resposta
Hanks

Estou fazendo uma aplicação que é como um fórum e fiz um diagrama de como quero fazer pra persistir os dados:

[img]http://imageshack.us/m/812/8997/bdforum.png[/img]

Mas não consigo criar as tabelas com os campos que estão em vermelho e nem essas relações entre as tabelas. Alguém pode ajudar? Minha aplicação é feita com JSF e Primefaces.

Meus scripts atuais:

CREATE TABLE `usuario` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Nome` varchar(255) NOT NULL DEFAULT '',
  `Senha` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `grupos` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Nome` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `topico` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Titulo` varchar(255) NOT NULL DEFAULT '',
  `Autor` varchar(255) NOT NULL DEFAULT '',
  `Conteudo` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `comentario` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Autor` varchar(255) NOT NULL DEFAULT '',
  `Conteudo` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

1 Resposta

drsmachado

1, Está usando qual banco de dados? MySQL? Sugiro que vocÊ apenas armazene o caminho da imagem, algo mais simples.
2, Um tópico pode ter imagens? Que tal colocá-las em uma tabela separada, pois entendo que um tópico pode não ter nenhuma ou ter vária imagens e, uma imagem sempre estará associada à, no mínimo, um tópico e no máximo, vários). Essa relação pode ser considerada M : N. Aí você precisará de uma tabela associativa.
3, Um comentário seria o que, em seu modo de ver? Se ele é um comentário, sempre terá uma texto. Se for uma resposta, também valo a indagação acima, uma resposta será sempre única ou pode ser associada à vários tópicos?

Respondendo a isto, acredito, estará concluindo o esforço e começará a desenvolver.

Criado 13 de maio de 2011
Ultima resposta 13 de mai. de 2011
Respostas 1
Participantes 2