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

Relacionar 3 tablas

Estas en el tema de Relacionar 3 tablas en el foro de Bases de Datos General en Foros del Web. Buenas. Tengo 3 tablas, supongamos la tabla A la B y la C Necesito relacionar 2 tablas, la A y la B con la C ...
  #1 (permalink)  
Antiguo 18/12/2015, 08:43
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Relacionar 3 tablas

Buenas.

Tengo 3 tablas, supongamos la tabla A la B y la C

Necesito relacionar 2 tablas, la A y la B con la C de una manera tal que cuando sea necesario aparezca el valor de la tabla A y cuando sea necesario el valor de la otra tabla B.

Osea......

Tabla C
ID____Valor de tabla A o B
1.................valor_tablaA
2.................valor_tablaB
3.................valor tabla A
4.................valor tabla A
5.................valor tablaB
6.................valor tablaA
etc.
No se si será posible relacionar las tablas A y B con el mismo campo de la tabla C pero como se hace?

OBSERVACIÓN: La tabla C no puede contener al mismo tiempo un valor de A y otro de B.
EXCEPCIÓN: Si pueden existir los 2 campos pero uno debe estar en 0.
Ejemplo:
Tabla C
ID____Valor de tabla A_____Valor de tabla B
1.................valor_tablaA.................... ..0.............
2..........................0...................... ....valor_tablaB
etc..

Creo que se resuelve de esta ultima manera pero no se si esta bien diagramado. De estar bien, necesito una restricción para que no se ingresen los 2 campos ¿no?
  #2 (permalink)  
Antiguo 18/12/2015, 09:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Relacionar 3 tablas

Podrias explicar mejor que es lo que necesitas........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 18/12/2015, 09:41
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

Tengo una tabla Prodcutos y una Servicios y otra Facturacion.

Lo que necesito es registrar en la Tabla Facturacion si se realizo una Venta de que producto y/o si se realizo un Servicio
  #4 (permalink)  
Antiguo 18/12/2015, 09:47
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 3 tablas

No nos vengas con descripciones simuladas. Postea la estructura REAL de las tablas, con sus nombres reales, las columnas reales y la relación REAL que existe entre ambas.
SI vas a venir con ejemplos simulados o genéricos, las respuestas serán genéricas, ineficientes y casi con seguridad equivocadas.

Editado: Ok. Un Servicio es un Producto, al menos desde el punto de vista comercial. La diferencia entre un producto físico y un servicio es de CATEGORIA, e implicaría consultas algo mas complejas que un simple SELECT ...FROM ...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/12/2015, 09:54
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

Aca estan las Tablas

http://es.tinypic.com/view.php?pic=2m5dqf8&s=9

Como puedo hacerlo entonces?
  #6 (permalink)  
Antiguo 18/12/2015, 10:10
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 3 tablas

No hay imágenes en ese link... Al menos no relacionadas con ninguna tabla.
__________________
¿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 18/12/2015, 10:13
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

Ahi esta la imagen....
Tenes la tabla Producto Servicio y Detalle_Factura. Se ve?

  #8 (permalink)  
Antiguo 18/12/2015, 10:24
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 3 tablas

1) Una sola tabla productos, que agrupe todo, los fisicos y los servicios, con los atributos generales.
2) Una tabla de categorías, que indique las que son fisicas de las de servicio.


Si un mismo producto puede estar agrupado en mas de una categoría (no lo sé, no conozco el sistema que estás modelando), se requeriría una tabla mas:


Este puede servir:



Hay mas soluciones posible.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 18/12/2015, 10:46
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

Genial muchas gracias lo voy a analizar!!!
  #10 (permalink)  
Antiguo 19/12/2015, 23:15
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

A ver si voy bien...
Arme una tabla intermedia llamada Categoria donde se encuentran solo 2 valores. El 1=Servicios y el 2=Productos para poder ir a una tabla u otra.


Y un pequeño juego de datos para comprender mejor


Gracias

Última edición por pablomacri06; 19/12/2015 a las 23:31
  #11 (permalink)  
Antiguo 20/12/2015, 12:45
 
Fecha de Ingreso: diciembre-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 1
Respuesta: Relacionar 3 tablas

hola, es simple. tenes que utilizar claves dobles, es decir:

tabla a:
id_a(auto incrementable)
id_c(es igual a la id auto incremantable de la tabla c)

tabla b:
id_b(auto incrementable)
id_c(es igual a la id auto incremantable de la tabla c)

id_c(auto incrementable)
titulo
  #12 (permalink)  
Antiguo 20/12/2015, 22:09
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

alantoledo007 gracias por tu comentario. Osea lo que me dices es maso menos lo que propuse al principio si no te entendí mal.

Si es así, retomo la misma pregunta por la cual abrí el hilo.
La restricción para no ingresar los 2 datos al mismo tiempo la tengo que hacer desde el soft obviamente porque desde la base no se puede. ¿Es así, es correcto hacerlo de esta forma entonces?
Gracias por su paciencia, es mi primer base de datos y tan solo llevo 1 semana de practica volcando todo lo leido.
Adjunto imagen con pequeño juego de datos.
  #13 (permalink)  
Antiguo 21/12/2015, 10:00
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 3 tablas

Esto sería lo que yo propongo:



Si hay atributos específicos de cada una de esas categorías, se puede modelar de otro modo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 21/12/2015, 11:31
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

Correcto, por lo que veo y entiendo, la misma tabla Producto representa mediante su ID al Producto-Servicio o Producto-Fisico que corresponda y mediante la otra tabla Categoria discrimino si es un Producto-Servicio o si bien es un Producto-Fisico.

En este diagrama que me presentas ¿Donde hago la relación con las tablas productos y Servicios? No olvides que cada tabla tienen su propio ID. (ID_Prod y ID_Serv)

Última edición por pablomacri06; 21/12/2015 a las 11:40
  #15 (permalink)  
Antiguo 21/12/2015, 12:02
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 3 tablas

Es un modelado diferente al que planteas. No requiere de dos tablas sino una.
La pregunta es ¿que atributos difieren entre productos físicos y productos servicios, que requieran tablas diferenciadas?

Los atributos exclusivos de cada tipo de producto irían en la tabla hija, mientras que en la padre van aquellos que son comunes a todos:

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 21/12/2015 a las 12:39
  #16 (permalink)  
Antiguo 21/12/2015, 12:58
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Respuesta: Relacionar 3 tablas

Los servicios estan arriba a la derecha llamados ORDEN DE TRABAJO y los prodcutos estan por debajo



No se ve muy bien, a la noche si necesitan vuelvo a sacar una captura mejor pero a simple vista se ve que tienen campos totalmente distintos y varios de ellos con mas detalles.

Etiquetas: campo, relacionar, tabla, 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 11:11.