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

Union de todas las tablas de base de datos

Estas en el tema de Union de todas las tablas de base de datos en el foro de Mysql en Foros del Web. Hola foreros! Me estoy volviendo loco uniendo un monton de tablas de mi base de datos sql, jeje. El problema que tengo es que el ...
  #1 (permalink)  
Antiguo 24/10/2008, 10:05
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Union de todas las tablas de base de datos

Hola foreros!

Me estoy volviendo loco uniendo un monton de tablas de mi base de datos sql, jeje. El problema que tengo es que el numero de tablas puede variar y por lo tanto no puedo hacer un select estatico, jeje, sino que deberia sacar los nombres de las tablas el solito, jeje.

Por lo tanto mi pregunta es:

¿Como puedo hacer un select que me una todos los registros de todas las tablas?, las tablas tienen dos campos titulo y texto.

Es que la verdad no creo que se deba hacer una a una...
  #2 (permalink)  
Antiguo 24/10/2008, 10:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Union de todas las tablas de base de datos

En realidad no se debe hacer una UNION sin que tenga sentido, sobre todo si las tablas corresponden a datos demasiado diversos. Con una unión como la que describes, si el contenido que poseen se divide de alguna forma, lo que obtendrás será una inmensa tabla que deberás administrar via código
¿Tiene sentido hacer eso?
Además si son demasiado largas, lo que lograrás será una inmensa transmisión de datos que en definitiva serán principalmente basura... ¿para qué traer 10.000 registros (que pueden implicar muchos bytes), si quiero obtener 30 solamente?

Es mejor tratar de hacer un select más preciso para obtener lo que realmente necesitas.
No te olvides que el hecho de tener 50 registros hoy no es impedimento para que4 esos 50 se vuelvan 50.000.000 dentro de un tiempo. ¿Traerías 50.000.000 de registros por que sí?

En todo caso, si aún así quieres intentarlo, lo único que debes hacer es respetar las reglas básicas de una UNION:
1. Los SELECT implicados deben tener la misma cantidad de campos en todos los casos.
2. las columnas deben tener el mismo tipo de datos y en el mismo orden.

Fuera de eso, el nombre de las tablas aparece en information_schema.`TABLES`
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/10/2008, 11:53
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Union de todas las tablas de base de datos

Hola gnzsoloyo:

Entiendo lo que me dices, jeje... aunque aun creo que estoy algo verde con sql. Por eso pregunto dos preguntas:

1 - ¿Como organizarias 100 tablas con los mismos campos?
2 - ¿Como harias un select de los primeros 50 registros segun el campo fecha de todas tablas?

Mi respuestas... corregirme si me equivoco:

1 - Tengo 100 tablas con 3 columnas: id (autoincrement), texto y fecha. Asi de simple.
2 - Un select uniendo todas las tablas, con order by fecha y limit 50.

¿Me equivoco en algo?, es que creo que estoy haciendo algo mal?, no?
  #4 (permalink)  
Antiguo 24/10/2008, 20:25
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Union de todas las tablas de base de datos

Hola salbatore...

Realmente tienes 100 tablas con la misma estructura??????????????:neuro tico

Si es así, es lo mas raro que he "visto"... por que no una solo tabla con los registros?? por que no intentar arreglar tu sistema??? Créeme que si lo dejas así, quizás ahora puedas solucionarlo... después se tornará inmanejable

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 25/10/2008, 02:29
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Union de todas las tablas de base de datos

Hola de nuevo, jeje

Tengo justamente 76 tablas... tienen la misma estructura por que cada una es de un producto determinado. Las tablas tienen miles de registros... asi que he pensado que era mejor ponerlas en tablas diferentes... no?

Segun he leido es mejor dividir los registros en tablas para no saturar la base de datos buscando registros dentro de un tabla con un monton de registros.

Ademas que tener los registros dividos en varias tablas segun el producto que sea es mucho mas rapido para navegar...

¿Que crees?
  #6 (permalink)  
Antiguo 25/10/2008, 05:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Union de todas las tablas de base de datos

Si tienes 76 tablas con la misma estructura, pero todas son de productos, entonces lo que puede estar fallando es el diseño conceptual del sistema, ya que no has considerado que en ese contexto el tipo de producto es habitualmente un campo ID de una tabla de tipos. De ese modo solamente tendrías una tabla productos con registros identificables por un atributo específico (hacer tablas diferentes para una entidad que se diferencian en un atributo es un error conceptual de diseño según enseñan en las universidades).
De esa forma suele trabajarse un modelo de esas características. Por darte un ejemplo, ese es el modelo de estructura que Oracle usa en sus modelos de prueba para tunning, por lo que debemos suponer que es un estándar.
Por otro lado, piensa esto: En una consulta, el principal costo de performance lo representan los accesos a disco. Cada tabla que se debe abrir, y cada índice distinto que se debe acceder implica overhead de disco que se suma. Si tienes muchas tablas iguales que abrir lo que tienes es un enorme consumo de recursos de microprocesador que no tendrías si se consultaran, por ejemplo, cuatro tablas (por más que una sea inmensa) par aobtener la misma info.

Es un tema para considerar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 25/10/2008, 09:17
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Union de todas las tablas de base de datos

Sí salbatore, afirmo lo que dice gnzsoloyo, tu problema no es de consulta, es de diseño de la DB. Me importaría primero arreglar eso, que la propia consulta

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #8 (permalink)  
Antiguo 25/10/2008, 11:15
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Union de todas las tablas de base de datos

Hola, jeje...

Algo asi me temia, jeje... entonces como debo hacerlo?. Todos los registros en una misma tabla indicando en un campo el tipo de producto?.

Os agradezco muchisimo vuestra ayuda!... jeje...
  #9 (permalink)  
Antiguo 25/10/2008, 11:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Union de todas las tablas de base de datos

Salbatore,
orienta a la gente del foro sobre la naturaleza de tus datos, y cómo trabajarás con ellos, y hazlo con ejemplos. Seguro que así podrán ayudarte a hacer una estructura relacional más eficiente.
  #10 (permalink)  
Antiguo 25/10/2008, 11:56
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Union de todas las tablas de base de datos

Pues la idea sería que cada producto perteneciera a un tipo... además tuviera su pk...

Lo del tipo del producto, debes ver si lo dejas en una tabla(hay posibilidades que administres el tipo?? agregarlos, modificarlos) o como un simple campo del producto. Intenta normalizar la mas que puedas tu diseño...

Creo que tendrás inconvenientes con los id de los registros de las tablas al unirlos en una sola

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 01:51.