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

Relacionar tablas de diferentes bases de datos

Estas en el tema de Relacionar tablas de diferentes bases de datos en el foro de Mysql en Foros del Web. Hola a todos. Quiero saber si es posible relacionar 2 tablas en distintas bases de datos dentro del mismo servidor. Trataré de explicar un poco ...
  #1 (permalink)  
Antiguo 25/08/2011, 09:40
 
Fecha de Ingreso: junio-2008
Mensajes: 76
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Relacionar tablas de diferentes bases de datos

Hola a todos.

Quiero saber si es posible relacionar 2 tablas en distintas bases de datos dentro del mismo servidor.

Trataré de explicar un poco para ejemplificar. Cada base de datos corresponde a un "departamento" dentro de una empresa.

1.Existe la BD llamada Ventas: BD con vendedores, productos, clientes y otras cosas.
2.Existe la BD llamada Herramienta: BD con las herramientas y materiales que utilizan los trabajadores de los departamentos "Ventas y Nóminas".
3.Existe la BD llamada Nóminas: BD con información de sueldos y otras cosas.

Problema:
En todas las BD existe la tabla "trabajadores". Por lo que, al actualizar esta tabla en alguna base de datos, no es reflejado en las demás BD.

Quiero hacer una BD sencilla que tenga los datos de los trabajadores. Pero que a su vez, pueda ser relacionada con las tablas de Ventas, Herramientas y Nóminas. Un registro que no exista en la BD "Empleados", no puede ser resgistrado o existir en ninguna otra BD.
Ya que un empleado puede trabajar en el departamento de ventas y es necesario tener un control sobre su sueldo y el tipo de herramienta que le proporciona la empresa.

Se que es posible hacer consultas entre tablas de diferentes bases de datos. Pero no se como hacer una relación con llave foránea o algo más (para salvar la integridad de datos) entre 2 tablas de diferentes bases de datos.

Actualmente utilizo MySQL Workbench, MySQL5 y trabajo en "localhost" por el momento.
  #2 (permalink)  
Antiguo 25/08/2011, 09:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Relacionar tablas de diferentes bases de datos

No se puede hacer claves foráneas entre bases diferentes. Al menos no en MySQL.
__________________
¿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 25/08/2011, 10:04
 
Fecha de Ingreso: junio-2008
Mensajes: 76
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Relacionar tablas de diferentes bases de datos

Entonces, ¿definitivamente no se puede "guardar" de alguna manera la integridad de los datos?

Eso de repetir información entre distintas BD no me agrada en lo absoluto.

¿Alguien conoce a alguien que trabaje haciendo BD en Facebook? Ellos deben de saber como hacerle con sus bases de datos gigantescas
  #4 (permalink)  
Antiguo 25/08/2011, 10:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Relacionar tablas de diferentes bases de datos

Analizado desde cierto ángulo, si tienes una relación entre tablas de dos diferentes bases, en realidad tienes una sola base, sólo que no está bien planteada... pero es una forma de verlo.
En realidad, cuando trabajas con bases de datos súmamente grandes lo que debe considerarse es la necesidad de usar bases de datos distribuidas, y no necesariamente "repetir" datos.
Hay muchas soluciones para lo que necesitas. En cualquier caso lo que te conviene es investigar un poco más el tema.

Un link útil: http://www.databaseanswers.org/data_models/
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql5, foreignkey, bases-de-datos
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 06:40.