Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2014, 04:35
Yukista
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Pregunta Duda conceptual de relaciones entre tablas

Buenos días,

Me he encontrado con una duda que no sé cómo resolver.

Tengo cuatro tablas T1, T2, T3 y T4. Cada registro de cada tabla puede tener varios documentos en la tabla D1.

Para resolver esto veo dos opciones:

Solución 1:

Relacionar cada tabla con los documentos directamente creando tablas intermedias:

- T1 ->T1_D1 -> D1
- T2 ->T2_D1 -> D1
- T3 ->T3_D1 -> D1
- T4 ->T4_D1 -> D1

El problema de esta solución es que salen muchas tablas intermedias.

Solución 2:

La siguiente solución que me he encontrado hacer que la tabla de documentos (D1) lo controle todo.

De esta forma la tabla D1 tendrá los siguientes campos:

- ID
- TargetID
- Document

En este contexto para buscar todos los documentos de un registro de la T1 lo que tendría que hacer es buscar todos los que su TargetID empiece por T1 mas el identificador de la tabla, por ejemplo 40.

Quedaría así:

SELECT * FROM D1 WHERE TargetID Like "T140%"


De esta forma me ahorro las 4 tablas intermedias, pero no lo veo del todo claro.

Si alguien tiene una solución mejor que me la explique por favor, que me estoy volviendo un poco loco dándole vueltas a la cabeza.

Saludos y muchisimas gracias.