Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Banco de dados para um forum


candycane

Pergunta

Oi Pessoal,

será que alguém pode me dar uma ajudinha? :D

Estou criando um site do género de um forum, e pintou uma duvida no desenho do banco de dados.

Para a parte de criar/responder um tópico criei duas tabelas, uma para guardar o tópico (idTopico, assunto, ect...) e outra para as respostas (idTopido, idRespostas, resposta, etc...),

Como é que posso introduzir os dados na tabela Respostas de forma a que fiquem assim:

idTopido idRespostas

1................1

1................2

1................3

2................1

2................2

Ou seja, sempre que o idTopico mudar de valor, o idRespostas volta para o valor 1.

Pensei por o campo idRespostas como identity(1,1), e criar um trigger na tabela Respostas que ao inserir vai ver o valor do idTopico anterior e comprar com o valor da inserção, se for maior reseto o identiy da coluna idResposta, mas não sei se essa é a forma mais indicada para esse caso.

Qualquer ajuda é bem vinda :)

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Amigo,

Quando a pessoa fizer uma pergunta, será realizada uma inserção na tabela tópico (idTopico). Para saber se existe alguma resposta, você pode pesquisar o idRespostas na tabela Respostas pelo idTopido.

Como que seria esta pesquisa? Faça um "select count(idRespostas) from Respostas where idTopico=XXX". Se o resultado for 0, quer dizer que não existe nenhuma resposta. Se, por exemplo for 3, quer dizer q já existem 3 respostas. Aí você sabe que o próximo idRespostas será o count +1 (4). Ok?

Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado!

Eu sabia que havia uma forma de fazer isso bem mais simples!!!

Já agora.. Só mais uma pergunta,

para chave de tabelas costumo por int identity(1,1), isso é considerado boa pratica?

No caso da tabela Topicos, o idTopico é int identity(1,1).

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Amigo,

É considerada sim uma boa prática. Não quer dizer que todas as tabelas terão. Vai depender da necessidade de cada regra.

Apenas uma dica: se o identity for (1, 1), o (1, 1) pode ser suprimido.

idTopico int identity(1,1)

Pode ser escrito assim:

idTopico int identity

Outras particularidades do identity você pode ler aqui:

http://msdn.microsoft.com/pt-br/library/ms186775.aspx

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...