Se puede hacer esto?

Iniciado por mark182, 22 Noviembre 2009, 10:30 AM

0 Miembros y 1 Visitante están viendo este tema.

mark182

Buenas..como estan?

Estoy haciendo algo parecido a un libro de visitas pero que el administrador de la web pueda responder a los mensajes. Entonces lo que quiero saber como puedo hacer para que, en la misma tabla donde se guardan las preguntas y/o comentarios, tambien se guarden las respuestas a dicha pregunta. Les muestro las tabla que tengo en la base de datos:

+----------+
|preguntas|
+----------+
| id_preg |
| nombre |
| apellido |
| mensaje|
|respuestas|
+----------+

El usuario escribe su nombre, apellido y el mensaje y eso queda guardado en esta tabla y se muestra en la pagina. Lo que quiero hacer es que el administrador de la web le escriba la respuesta a dicha persona y eso se inserte en esta tabla en el registro "respuestas" segun a al nombre y apellido que le responda (osea la persona que hizo la pregunta). Me explico?

Desde ya muchas gracias.

MasterPunk

yo no pondria mi apellido xD

braulio--

Claro que se puede hacer, si cada pregunta/comentario tiene un id específico solo tienes que hacer un :
UPDATE librovisitas SET respuesta='$respuesta' WHERE id_preg=$id

Carlosnuel

Cita de: braulio23 en 22 Noviembre 2009, 10:49 AM
Claro que se puede hacer, si cada pregunta/comentario tiene un id específico solo tienes que hacer un :
UPDATE librovisitas SET respuesta='$respuesta' WHERE id_preg=$id


Pero que pasaría si hubieran 5 respuestas a 1 pregunta. Solamente se mostraria la 5° respuesta.
Lo que recomiendo es hacer una tabla intermedia entre respuestas y preguntas

Tabla preguntas
-  idpregunta
- nombre
- fecha
- pregunta

Tabla Pregunta_respuesta
- idpregunta
- idrespuesta

Tabla Respuesta
- idrespuesta
- nombre
- fecha
-respuesta

Con esto 1 pregunta pudiera tener 5 o más respuestas

mark182

Cita de: Carlosnuel en 22 Noviembre 2009, 19:38 PM

Pero que pasaría si hubieran 5 respuestas a 1 pregunta. Solamente se mostraria la 5° respuesta.
Lo que recomiendo es hacer una tabla intermedia entre respuestas y preguntas

Tabla preguntas
-  idpregunta
- nombre
- fecha
- pregunta

Tabla Pregunta_respuesta
- idpregunta
- idrespuesta

Tabla Respuesta
- idrespuesta
- nombre
- fecha
-respuesta

Con esto 1 pregunta pudiera tener 5 o más respuestas

Y que se relacionaria con que? o como seria el codigo sql para hacer la consulta?

Kasi

Algo similar a:

SELECT lo que sea
FROM (Preguntas
INNER JOIN Pregunta_Respuesta ON Preguntas.idpregunta = Pregunta_respuesta.idpregunta)
INNER JOIN Respuesta ON Respuesta.idrespuesta = Pregunta_Respuesta.idrespuesta


No es recomendable que hagas la select con el * puesto que te devuelve todos los campos de las 3 tablas, obtén únicamente los necesarios(imagínate sino con tablas grandes :P )

Nakp

ehm... yo crearía una nueva tabla y la relacionaría con las preguntas... cuestión de diseño :rolleyes:

como ya te respondieron... se puede, pero no se debe xD

por cierto, solo serían 2 tablas

Preguntas
Respuestas
idpregunta
pregunta
fecha
iduser (fk)
idrespuesta
respuesta
fecha
iduser(fk)
idpregunta(fk)
y la relación:

pregunta |------< respuestas (1 - n)

la tabla que puso carlosnuel sobra xD


Ojo por ojo, y el mundo acabará ciego.

^Tifa^

#7
Esto deberia ir en el foro de Base de Datos no de PHP como tal  :-*

Me gusta mas el modelado de Carlosnuel (Es que es el modelado antiguo  ;D  y aun funciona) Es cierto 1 pregunta puede tener mas de 1 respuesta, por ende me atrae mas la idea de enlazar esto con una tercera tabla y 2 indices. Ya que si uso fk estas no se pueden repetir...

Aunque al modelado si le cortaria algunos campos para que no se repitan:

Tabla preguntas
- idpregunta
- nombre
- fecha
- pregunta

Tabla Pregunta_respuesta
- index( idpregunta, idrespuesta)

Tabla Respuesta
- idrespuesta
- respuesta

Es solo mi humilde opinion  :P

Nakp

el modelo de carlos nuel es para n-n xD 1 pregunta varias respuestas, 1 respuesta a varias preguntas????? y... las fk se pueden repetir no? las pk no! xD
Ojo por ojo, y el mundo acabará ciego.

^Tifa^

Precisamente cielo, como las fk no se pueden repetir en que punto van a concordar mi

idpregunta de las tablas Preguntas con idpregunta de la tabla respuesta? No pueden ser iguales, por ende si yo tuviera lo siguiente:

idpregunta       texto
     1               pregunta 'de que color es el sol'

idpregunta        texto
       1             respuesta : Amarillo
       2             respuesta : blanco

La misma pregunta pero no puedo enlazar las mismas respuestas por su valor que no puede repetirse, a no ser claro, que uses una tercera tabla de relacion de 2 indices. Que con fk hasta lo que me concierne no se puede. Hay situaciones donde fk si es efectivo pero hay otras donde bueno... no aplicaria.

Ahora lo anterior con el modelado de CarlosNuel

idpregunta       texto
     1               pregunta 'de que color es el sol'

idpregunta        texto
       1             respuesta : Amarillo
       1             respuesta : blanco

Misma pregunta y sus mismas respuestas.