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

como organizo las tablas en MySql?

Estas en el tema de como organizo las tablas en MySql? en el foro de Mysql en Foros del Web. Tengo una duda, una gran gran duda, el tema es asi, quiero crear una web, una especie de "foro", el tema es que cada usuario ...
  #1 (permalink)  
Antiguo 03/02/2012, 17:47
Avatar de Agusx1211  
Fecha de Ingreso: octubre-2009
Ubicación: Buenos Aires
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 2
Pregunta como organizo las tablas en MySql?

Tengo una duda, una gran gran duda, el tema es asi, quiero crear una web, una especie de "foro", el tema es que cada usuario puede crear varios "hilos", pero los "hilos" no funcionan como en un foro, funcionan de una manera mucho MUCHO mas pesada, cada "Hilo" puede llegar a tener 500 respuestas... el problema de esto es organizar todo en la base de datos, teniendo en cuenta que puedo llegar a tener mas de 50000 hilos...

Lo primero que se me ocurre es crear una tabla para poner todas las respuestas de los hilos, pero me parece una locura, terminaría teniendo una tabla demasiado pesada...

Despues se me ocurrio crear una tabla desde PHP para cada hilo, entonces tendria todo bien separado y ninguna tabla tendria problemas al hacer una consulta... y luego tener un "index" para darle las propiedades de cada hilo (Dueño, fecha de creacion, etc...)

Mi duda es cuantas Tablas puedo crear en Mysql, y si eso afecta mucho al rendimiento, ejemplo, afectaria mucho al rendimiento tener 500.000 tablas?... se puede tener 500.000 tablas? o cual es el limite...

Muchas Gracias
  #2 (permalink)  
Antiguo 03/02/2012, 18:13
 
Fecha de Ingreso: febrero-2012
Mensajes: 75
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: como organizo las tablas en MySql?

Lo que planteas es muy laborioso.

Si tienes tiempo y ganas te propongo que te instales en local un foro como este [URL="http://www.phpbb.com/"]http://www.phpbb.com/[/URL].

A partir de ahí puedes mirar como lo tienen hecho y hacer pruebas hasta dar con la opción que mejor se te adapta.
__________________
Si quieres conseguir resultados diferentes no hagas siempre lo mismo.

Mejora tu entorno. MestralCadiz con su comunidad.
  #3 (permalink)  
Antiguo 03/02/2012, 22:51
Avatar de Agusx1211  
Fecha de Ingreso: octubre-2009
Ubicación: Buenos Aires
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: como organizo las tablas en MySql?

Lo instale y lo investigue, por lo visto funciona asi...

Si yo creo un hilo se almacena en una tabla con todos los hilos...
Si alguien responde un hilo se almacena en una tabla con TODAS las respuestas...

Eso para mi es totalmente inficiente, tendria que tener esta tabla y seria demasiado pesada...

Lo que se me ocurre es esto, luego de unas 5 horas de creado el hilo, y luego de recivir las 500 respuestas, este se cierra, se me ocurre que cuando se cierra, guardar toda la info en un txt o en algun otro lado, y luego si el usuario quiere volver a ver el hilo o continuarlo, simplemente cargarlo de vuelta en una tabla temporal (Cuando se crea un hilo creamos una tabla, y cuando se cierra un hilo cerramos la tabla)
  #4 (permalink)  
Antiguo 04/02/2012, 07:46
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: como organizo las tablas en MySql?

Pues lo que tu propones es una atrocidad.

Nunca, nunca nunca utilices DDL de manera dinámica en una aplicación.
De hecho por seguridad se recomienda que el usuario que se conecta a la base de datos (el que pones en la aplicación) no tenga permisos para realizar modificaciones de la definición de tablas. (sin permisos DROP, CREATE ni ALTER...)

La mejor solución es justamente la que a ti no te gusta, tener una tabla para los "topicos" y otra para las "respuestas y créeme el diseño de base de datos lo pondría así.

Por asuntos de optimización de consultas te preocupas después, agrregando índices, optimizando los SELECTS, etc.

El diseño de una base de datos es cada día la labor más importante en un software y créeme que vas a tener más problemas creando múltiples tablas que creando múltiples registros.

Si quieres más consejos preguntalos por acá mismo =)

Saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #5 (permalink)  
Antiguo 04/02/2012, 09:41
Avatar de Agusx1211  
Fecha de Ingreso: octubre-2009
Ubicación: Buenos Aires
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: como organizo las tablas en MySql?

Tambien se me ocurrio esto, no se que opinan, crear una tabla temporal para todas las respuestas, y luego cuando los hilos se cierran, buscar todos los datos de la tabla y almacenarlos en un .txt para tenerlos guardados por si el usuario los solicita...

Y que en la tabla que funciona como indice deje acentado que los datos del hilo "5" estan en un .txt... y los del hilo "8" estan en la tabla porque los estan usando...

Pero lo que pienso ahora, el problema es que cuando el usuario "Cierra" el hilo, tendria que borrar todas las respuestas de la tabla que tengan que ver con ese hilo, esto seria muy pesado para la base de datos?

Tambien lo que se me ocurre (Aunque no se si estaria bien), seria crear 10 tablas temporales para las respuestas, y a cuando se crea el hilo 1, se guarda en la tabla "res_01", cuando se crea el hilo 2, se guardan en "res_02" y cuando se crea el hilo 12 se guardan en "res_02"... asi sucesivamete...

de esta forma tendria todo balanceado entre varias tablas, y en el index claramente dicho en que tabla esta cada hilo (Estoy preocupado repito, cada hilo tiene muchas respuestas)
  #6 (permalink)  
Antiguo 04/02/2012, 10:02
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: como organizo las tablas en MySql?

xD!
Yo tenía esas mismas preguntas cuando recién entréal mundo de las bases de datos.

Pero vamos... Las bases de datos están para eso, pero bueno creo que acá ya no hay mucho que cavar.

Saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #7 (permalink)  
Antiguo 04/02/2012, 10:15
Avatar de Agusx1211  
Fecha de Ingreso: octubre-2009
Ubicación: Buenos Aires
Mensajes: 33
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: como organizo las tablas en MySql?

Cita:
Iniciado por Ribon Ver Mensaje
xD!
Yo tenía esas mismas preguntas cuando recién entréal mundo de las bases de datos.

Pero vamos... Las bases de datos están para eso, pero bueno creo que acá ya no hay mucho que cavar.

Saludos.
Entonces no tendria mayor problema en hacer el ultimo metodo que propuse? Otra cosa, estoy obligado a usar base de datos tipo MyISAM...

Gracias por la ayuda :D

Etiquetas: limite, tablas
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 17:37.