Ver Mensaje Individual
  #9 (permalink)  
Antiguo 13/05/2008, 14:08
Avatar de Mcruzmx
Mcruzmx
 
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Re: Promedios de registros en mysql, php?

Cita:
Iniciado por jpinedo Ver Mensaje
¿Pero quién te dijo que tener más tablas es complicar más las cosas?
Siempre que esté bien justificado, tener más tablas puede incluso facilitarte el trabajo.

Te explico lo de la redundancia que te decía:
- Primero, la redundancia (bien justificada) hace que el proceso de consulta sea mucho más sencillo y rápido. Esto es porque se ahorra algunos cálculos y consultas complejas y lee directamente de un campo.
- Segundo, toda redundancia hace más trabajoso y lento el proceso de escritura. O sea cuando alguien llene el cuestionario va a tener que hacer doble trabajo porque hay que escribir aquí y allá.

Ahí es cuando tienes que ver si vale la pena redundar. En tu caso, creo que la escritura (las veces que se llena el cuestionario) es pequeñísima comparada con las veces que se van a consultar los resultados. Entonces te conviene redundar.

¿Y qué es redundar, en este caso?
Es realizar el cálculo en el momento de escribir y no al leer. Es tener ese cálculo almacenado en algún lugar de tu BD. ¿Dónde vas a guardar este cálculo? Depende de la estructura. En el ejemplo que te puse yo, podrías agregar un campo a la tabla de respuestas. Pero, si quieres haz una nueva tabla con los resultados.

Cuando alguien quiere leer los resultados, simplemente los muestras sin que la BD tenga que hacer ningún cálculo complicado.

Cuando alguien escriba (llene el cuestionario) se van a actualizar dos campos por cada pregunta. El campo que tenías antes y el nuevo campo (que tomará el valor anterior +1)

No sé si se entendió.
Gracias, mas o menos entiendo (entiendo el punto, pero no entiendo como podria hacer esto o si bien me exste explicando yo)


por ejemplo esta es la pregunta #8


8- Escolaridad del padre o tutor:

yo para que el usuario (alumno) responda tengo un combo, este es el codigo

<select size="1" name="D8">
<option value="Ninguna">Ninguna</option>
<option value="Primaria incompleta">Primaria incompleta</option>
<option value="Primaria completa">Primaria completa</option>
<option value="Secundaria incompleta">Secundaria incompleta</option>
<option value="Secundaria completa">Secundaria completa</option>
<option value="Bachillerato o carrera técnica incompleta">Bachillerato o carrera técnica incompleta</option>
<option value="Bachillerato o carrera técnica completa">Bachillerato o carrera técnica completa</option>
<option value="Profesional incompleta">Profesional incompleta</option>
<option value="Profesional completa">Profesional completa</option>
</select>

entonces, cada pregunta (56 preguntas) tiene mas o menos la misma cantidad de respuestas, pero diferentes respuestas, entonces, si hago una tabla de respuestas pues nose se me hace complicado ir a buscar un id de respuesta y guardarlo en la tabla (test_egresados) que es donde se guarda la encuesta.

me llama la atencion lo que comentas de agregar un campo e ir sumando cada vez que contesten eso, pero pues creo que no es muy posible (quizas me equivoco) teniendo en cuenta que son muchas las opciones de respuestas.

eso seria quizas para contar cuando alguien contesta alguna pregunta "contesto esta pregunta, sumo 1, no la contesto, no sumo" pero no me sirve por que yo necesito saber cuantas veces por cada campo existe cierto valor (coincidencia de un registro por campo) o por lo menos asi lo entiendo.

agradesco muchisimo tu ayuda y tu tiempo, gracias amigo.