Usuário com melhor resposta
(RESOLVIDO - ASP.NET C#) Sistema de pergunta e comentários

Pergunta
-
:D
Eu quero desenvolver um sistema no qual o usuário faça uma pergunta (semelhante aqui no forum) e possa ter q sua dúvida respondida.
Vejam se a minha abstração está correta: eu vou precisar de uma tabela(1) chamada TB_PERGUNTA e outra chamada TB_RESPOSTA(2). Nessa última (TB_RESPOSTA) eu vou precisar salvar o ID_PERGUNTA, sendo um campo FOREIGN KEY, referenciando a TB_PERGUNTA, além disso, eu vou precisar salvar o ID_USUARIO.
falta mais alguma coisa?
- Editado Daniel O. Farias quarta-feira, 28 de agosto de 2013 12:45
Respostas
-
E ai Daniel, blz?
Seguinte antes de mais nada, evite utilizar TB na frente do nome das tabelas, isso já não se usa mais.
Seu modo de pensar esta correto, você terá uma tabela PERGUNTA com os seguintes campos (id_pergunta, id_usuario, pergunta, dataehora), entre outros atributos, depende da sua necessidade.
Ja a tabela RESPOSTA tera os campos (id_resposta, id_usuario, id_pergunta, resposta, data), entre outros.
Para fazer a consistência do banco, voce deve fazer as chaves estrangeiras.
Veja como fica a tabela PERGUNTA:
PERGUNTA(id_usuario) » USUARIO(id_usuario)
não esqueça de colocar "on delete cascade" e "on update cascade"
assim se um usuário for deletado as perguntas que estao vinculadas a ele serao deletas ou atualizadas.
Veja agora a tabela RESPOSTA:
RESPOSTA(id_pergunta) » PERGUNTA(id_pergunta)
RESPOSTA(id_usuario) » USUARIO(id_usuario)
assim obrigatoriamente um resposta só existira se pertencer a uma pergunta existente anteriomente.
não esqueça de colocar "on delete cascade" e "on update cascade", se quiser que quando uma pergunta for excluída ela tenha também todas as respostas a ela excluídas ou atualizadas.
- Editado JuniorMandrakeCsharp quinta-feira, 15 de agosto de 2013 22:07 errata
- Marcado como Resposta Daniel O. Farias sexta-feira, 16 de agosto de 2013 10:25
Todas as Respostas
-
-
E ai Daniel, blz?
Seguinte antes de mais nada, evite utilizar TB na frente do nome das tabelas, isso já não se usa mais.
Seu modo de pensar esta correto, você terá uma tabela PERGUNTA com os seguintes campos (id_pergunta, id_usuario, pergunta, dataehora), entre outros atributos, depende da sua necessidade.
Ja a tabela RESPOSTA tera os campos (id_resposta, id_usuario, id_pergunta, resposta, data), entre outros.
Para fazer a consistência do banco, voce deve fazer as chaves estrangeiras.
Veja como fica a tabela PERGUNTA:
PERGUNTA(id_usuario) » USUARIO(id_usuario)
não esqueça de colocar "on delete cascade" e "on update cascade"
assim se um usuário for deletado as perguntas que estao vinculadas a ele serao deletas ou atualizadas.
Veja agora a tabela RESPOSTA:
RESPOSTA(id_pergunta) » PERGUNTA(id_pergunta)
RESPOSTA(id_usuario) » USUARIO(id_usuario)
assim obrigatoriamente um resposta só existira se pertencer a uma pergunta existente anteriomente.
não esqueça de colocar "on delete cascade" e "on update cascade", se quiser que quando uma pergunta for excluída ela tenha também todas as respostas a ela excluídas ou atualizadas.
- Editado JuniorMandrakeCsharp quinta-feira, 15 de agosto de 2013 22:07 errata
- Marcado como Resposta Daniel O. Farias sexta-feira, 16 de agosto de 2013 10:25