Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda sobre eficiencia

Estas en el tema de Duda sobre eficiencia en el foro de Mysql en Foros del Web. Hola a todos! Estoy desarrollando una aplicación web que consiste en una red social (tipo Tuenti, Facebook) sencilla. Ya había entregado para un trabajo de ...
  #1 (permalink)  
Antiguo 06/02/2011, 11:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 1
Duda sobre eficiencia

Hola a todos!

Estoy desarrollando una aplicación web que consiste en una red social (tipo Tuenti, Facebook) sencilla.

Ya había entregado para un trabajo de la universidad una versión muy "cutre" y para evitar complicación con la base de datos fija. Es decir tenía una tabla para todas las fotos que se subieran, otra tabla para todos los comentarios que tuvieran todas las cuentas, otra tabla para todos los comentarios de todas las fotografías subidas... etc

Es decir, todo en plan general para no tener que crear tablas dinámicamente en la aplicación para cada usuario, etc

El esquema era algo así para que sea más facil verlo:



Bueno esto era en plan "muy simple" pero bueno se me pedía más detalle en la documentación del proyecto que no en el proyecto en sí.

Ahora voy a realizar el PFC sobre este trabajo, pero ampilándolo y mejorando lo que tenía.

Aparte de otras cosas que voy a introducir, como mensajes privados, álbums para tener las fotos, un blog en el tablon, etc....

La principal cosa es el diseño de la base de datos, que imagino que en una aplicación como esta que se supone va a tener grandes cantidades de usuarios, cada usuario grandes cantidades de fotos, comentarios, etc...

Lo que tengo en mente es , si sería más eficiente que cada vez que se registra un usuario se le crean automáticamente la tabla "comentarioscuenta_idcuenta" donde "idcuenta" es el identificador de la cuenta.

Así mismo se crearía una tabla "fotoscuenta_idcuenta" para las fotos que suba esa cuenta, "albums_idcuenta" para los albums que tenga esa cuenta... etc

Esto haría que por cada usuario tengamos unas 5 o 6 tablas, pero imagino que aunque tengamos "miles de tablas" en la base de datos, la eficiencia sería mejor comparado con tener 6 tablas y millones de datos en cada una.

Si mi planteamiento es incorrecto o no está del todo bien, me gustaría que me dierais consejo con vuestra experiencia.


Otra duda que tengo, es en el ejemplo de los comentarios que tiene cada foto.

Lo lógico con este esquema, sería crear una tabla de comentarios por cada foto subida. Pero no se hasta que punto esto podría ser eficiente, ya que entonces tendríamos miles o millones de tablas, puesto que se espera tener miles o millones de fotografías subidas. Y habría fotos que no tendrían comentarios, u otras que tendrían pocos...

Entonces, ¿qué sería más eficiente? Crear una tabla para los comentarios que tengan todas las fotos subidas por un usuario (así solo habría tantas tablas como usuarios), o crear como he comentado antes, una tabla de comentarios por cada foto subida.


Un saludo y muchas gracias por vuestro tiempo ;)

Última edición por ripoljorge; 06/02/2011 a las 19:18

Etiquetas: eficiencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:07.