MYSQL limite tablas per DB ??

ElRuso

Hay algun limite de numero de tablas en una base de datos en MySQL?? Es que estoy planteando en hacer algo parecido a un foro, y la unica manera que encuentro es crear una tabla por cada Thread. ...

SiNSoNiDo

una tabla para cada thread? no es necesario crear una tabla para cada thread, creando una tabla con un identificador único para distinguir cada thread sería suficiente.

P.D.: llevo tiempo usando mysql y nunca me planteé si tiene límite de tablas por base de datos.
Editado: según http://www.huihoo.com/postgresql/mysql-vs-pgsql.html el número de tablas no está limitado (mira la sección Maximum number of tables and indexes)

W

Aprovechando el post, yo mestoy planteando crear 1 foro para mi proyecto de Sintesis que es una web PHP con MySQL. Me gustaria si alguno de vosotros teneis por ahi en mano un tutorial que sea rapidito, no quiero 1 cosa PROFESIONAL, si no un foro para ir tirando, que se pueda crear TEMA y responder a 1 tema creado, vamos 1 foro tipico.

SiNSoNiDo

#3 http://www.php-hispano.net/archivos/Manuales/88/1/Cmo-creo-mi-propio-FORO1.html

ElRuso

Gracias #2 pero
Puedes explicar un poco mas creando una tabla con un identificador único para distinguir cada thread sería suficiente. ?

Yo lo que hago es crear una tabla con nombre de numero_de_tablas+1."t" por cada nuevo Thread(topic), al descubrir que las tablas no aceptan los espacios ni solo numeros. Es eso, mas o menos, que querias decir?

#3 Lo que digo yo es, si quieres aprender es mucho mejor planteartelo tu mismo e intentar hacerlo por tu cuenta, que seguir un manual ya completo. Coje algun foro como ejemplo e intenta simular su funcionalidad, MV por ejemplo :D

SiNSoNiDo

me refería q a la hora de crear la tabla crees un campo id q sea int y como propiedad tenga auto_increment, de manera q cada vez q hagas un insert into para crear cada nuevo tema o respuesta de este no tendrás q sumar +1 a nada, puesto q al ser auto_increment incrementa su valor automáticamente. no sé si me expliké bien.
mírate la dirección q puse en #4

ElRuso

Ok, creo que lo he pillado :)
Pero lo que se plantee en el link que pusiste carga menos el ordenador y la bd que la creacion de muchas tablas?? Pq luego para hacer busquedas eso puede ser muy lento tanta info en una tabla....?? O me estoy equivocando??

FuMaO

una preguntilla, xq tiene q ser int y no vale por ejem varchar ??

SiNSoNiDo

a la hora de realizar las consultas manejar una sola tabla es mucho más sencillo (al menos para mi) q tener q manejar más. de todas maneras siempre puedes crear una tabla para los temas padres y otra para todas las respuestas (del tema q sean) y mediante una clave heredada pues tener enlazados unos con otros.

SiNSoNiDo

#8 si puedes poner una clave identificadora como tipo varchar, solo q no tiene la propiedad auto_increment. por ejemplo un nick de media vida sería una clave indentificadora de cada usuario puesto q no hay 2 usuarios con el mismo nick (puede q parecido si, pero no el mismo), sin embargo un título de un tema no podría ser clave identificadora xq puede haber 2 temas con el mismo título (ej.: "ak o colt?" XD)

Editado: me piro q salgo de currar ahora!

FuMaO

ahh muchas gracias , no sabia q el auto_increment solo se podia poner con int

CoNcEpT

En MySQl no estoy seguro pero en MicrosoftSQL Server por cada server de BD instalado puedes poner 32.767 bases de datos. Y dentro de cada BD se pueden hacer dos mil millones de tablas (me parecen bastantes xDD)
y 1024 columnas por cada tabla (especifico: pa mi las columnas son las que se van contando de izquierda a derecha :) ) luego, las filas y el tamaño total de la tabla ya lo decide el espacio de almacenamiento.

Esos ex-evT posteando ahi a fuego ;D

Miembrillo

hacer una tabla por cada topic sería una barbaridad.
no necesitas nada mas que 2 tablas

una de topics, campos:
id, titulo, etc..

otra tabla de posts, campos:
id, idtopic, texto, etc..

que es una relación "uno-muchos": un topic tiene muchos post. Un post tiene un solo topic.

¿como se saca la lista de mensajes de, digamos, el topic númer 124?

SELECT * FROM post WHERE idtopic=124
(y quizas añadir un ORDER BY fecha )

espero que sea de ayuda

8 días después
SeiYa

A ver, yo haría una tabla que sea POSTS y un campo (además del id) que sea id_padre

Si el id_padre = 0 es un trhead

Si el id_padre = x es una contestación al thread x, y ya solo queda ordenar las contestaciones por fecha o como quieras...

Pero una tabla por post ... me parece demasiado chapucero XD

ElRuso

Ya lo he cambiado, ahora tengo dos tablas una para los threads otra para los posts enlazados entre se por uniq id de la tabla threads.
:)

Usuarios habituales

  • ElRuso
  • SeiYa
  • Miembrillo
  • CoNcEpT
  • FuMaO
  • SiNSoNiDo
  • willy__chaos