Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/04/2012, 03:58
cnavast
 
Fecha de Ingreso: marzo-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Optimización PHP & MySQL

¿Pero no sería más eficiente la opción B? Imagínate que tenemos las ideas 1,2,...,10, y el usuario 5 ha votado la 3,6 y 8. Con el método A implicaría tener 3 entradas más en la base de datos. Con el método B, en la entrada perteneciente al usuario 5 de la tabla usuarios tendríamos un campo (ideasVotadas) con este contenido (por ejemplo): "|3|6|8|".
Si ahora el usuario 5 intenta votar a la idea 6, el servidor descarga el campo ideasVotadas del usuario activo y simplemente mediante PHP busca si la cadena |6| está dentro de la cadena |3|6|8|, y si es así no le deja votar. Sin embargo, si intentara votar a la idea 7, se haría un update a la base de datos que quedaría |3|6|8|7|.
En definitiva (creo) se ahorraría por un lado en espacio de la base de datos y por otro en eficiencia (supongo que al servidor le costará menos tener que buscar un string dentro de otro que ponerse a buscar en una base de datos que puede tener miles de entradas). Pero vamos, que igual no... no tengo mucha idea sobre cómo funciona a nivel 'uso de memoria y procesador' ni PHP ni MySQL ni nada.

¿Cómo lo ves?

Última edición por cnavast; 11/04/2012 a las 04:04