SQL - Relaciones entre tablas

 
Vista:
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Mike (6 intervenciones) el 19/02/2021 10:12:51
Hola, necesito ayuda con esto

Tengo una tabla VTSH, con sus datos...
el VTSH puede venir derivado de diferentes Fuentes, pero cada una de esas fuentes, es una tabla,
(Administraciones públicas ,Cuerpos de Seguridad del Estado, Entidades sociales, Hospitales, etc..)
cada uno de estos tiene sus propios datos...

y no veo cómo relacionar la tabla VTSH con esas tablas. Yo lo he planteado como en la imagen, pero creo
que no esta bien, porque no llego a los datos..


Derivacion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Relaciones entre tablas

Publicado por anonymous (43 intervenciones) el 19/02/2021 13:29:55
Falta más claridad, si se puede reflejar algún registro para saber a donde quieres llegar.

Aparentemente esas relaciones se ven bien, sin embargo veo algo de redundancia, pero para poder normalizar adecuadamente tendría que conocer más a fondo.

Lo de poder llegar desde VTSH hacia las fuentes, como tienes el modelo actualmente se llega mediante el campo Id_Fuente, ese sería el enlace para obtener la información.

Pero para poder acabar de orientarte se requiere conocer más a fondo las reglas de negocio que pretendes modelar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Mike (6 intervenciones) el 19/02/2021 16:05:13
Hola Jorge,
pues mi problema es que seleccionando desde la tabla VTSH el Id_Fuente
quiero saber también, si el Id_Fuente pertenece a ENTIDADES, que id_Entidad
he seleccionado...
Ejemplo :

Tabla FUENTES_DERIVACION:
Id_Fuente = 1
Fuente = Entidades Sociales

Tabla ENTIDADES
Id_Entidad = 1
Entidad = FUNDACIÓN ROSA DE LIMA
Id_Fuente = 1

Yo desde La Tabla VTSH necesito saber Que tipo de Fuente de Derivación ( 1 = Entidades)
y Cual de ellas es (1=FUNDACION ROSA DE LIMA)

No se si es que me falta una tabla intermedia o qué ??

Un Saludo y Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Isaias (1921 intervenciones) el 19/02/2021 15:34:31
No entiendo su duda, FUENTE DERIVACION es su tabla pivote para llegar a los demás datos, ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Relaciones entre tablas

Publicado por anonymous (43 intervenciones) el 19/02/2021 16:21:58
Estoy igual de perdido que Isaías

Pero haber yo lo que veo es que la tabla entidades solo conecta mediante Id_Fuente con Fuentes Derivacion y lo que me imagino es que desean saber si esa fuente proviene de alguna entidad pública y/o Policía, pero estas últimas no tienen relación directa con entidades, solo se puede hacer a través de la tabla fuentes Derivacion

Y ese es el único puente para llegar desde VTSH

Isaías que piensas tú de ese modelo, me deja sin saber para donde coger....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Isaias (1921 intervenciones) el 19/02/2021 16:55:33
Es una relaciona MANY-TO-MANY, no le veo problema, por el contrario, creo que esta bien a simple vista, necesaria conocer mas sobre el modelo de este ER
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Mike (6 intervenciones) el 19/02/2021 18:15:12
Pues Eso Jorge, ese es mi problema y lo que no veo claro.
En la tabla VTSH necesito otra conexion con las tablas de origen de la derivacion (Administraciones/policias/entidades/ etc..)
para saber de que id de estas tablas en concreto a venido derivada cada VTSH.

O la única soloción es poner todos los id de estas tablas en VTSH ??
como os muestro en esta imagen

Derivacion2

Pero de ésta forma, los VTSH que vienen derivados de Policias, por ejem.
los Id_Administraciones y Id_Entidades, etc.. estarán vacios... y no se si es la forma correcta.

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Relaciones entre tablas

Publicado por anonymous (43 intervenciones) el 19/02/2021 19:04:16
No así de esta última forma te quedaría mal.

Lo que afirma Isaías es acertado, en realidad estás frente a una relación Many to Many esto es Muchos a Muchos, que desde luego no se puede dar, entonces lo que se suele hacer en estos casos es crear una intermedia que se "roba" las claves de las otras dos y así normalizas y te queda en 3NF.

Pero yo creo que ahí es donde está precisamente el problema, que no se ve las claves de las tablas padre como foráneas, yo entiendo a Fuentes Derivacion como la intermedia

Yo aún sin conocer tus reglas de negocio internas, creo que debería haber una tabla maestra con las diferentes fuentes de información, y que están tipificadas o categorizadas, así se sabría si son entidades públicas o de algún otro tipo, entonces tendría que haber una relación entre esa categoría y la fuente (1:M) , y por supuesto una intermedia entre esas fuentes y VTSH que claramente son M:M y esa que tu llamas Fuentes Derivacion tendría que tener las claves de VTSH y el maestro de fuentes (Entidades) que pueden ser Policia o Adm Publica

Si no es así como lo estoy interpretando, entonces pinta en un excel las columnas de las tablas que quieres ver con datos reales de dos o tres registros, pero muéstranos también algo de información de las demás para poder lograr dar con el modelo ideal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Relaciones entre tablas

Publicado por anonymous (43 intervenciones) el 19/02/2021 19:47:37
Eso debería ser así creo

imagen_2021-02-19_134710
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Isaias (1921 intervenciones) el 21/02/2021 16:32:13
No creo, se ve mucho mejor el primer modelo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Mike (6 intervenciones) el 22/02/2021 11:52:57
Hola Jorge.
No entiendo muy bien como hacer esa tabla Maestra, no veo cómo.
(es mi primera base de datos compleja)

Seguramente es que no me explico muy bien. Te doy datos a ver si se me entiende mejor.
Tengo una serie de Fuentes de Derivación de un Item
Fuentes_Derivacion

Cada una de ellas con su tabla correspondiente y sus datos (No están todos los campos, pero son irrelevantes)
Administraciones_Publicas
Entidades
Policiasjpg

etc..

y tengo un tabla VTSH, de la que cada item principal Id_VTSH necesito saber de que tipo de fuente de Derivación
me ha llegado, y de cual en concreto..

A ver si se ve mas claro.
En mi primer diagrama,
Derivacion
So puedo averiguar el tipo, pero no de cual en concreto..

Gràcias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Relaciones entre tablas

Publicado por anonymous (43 intervenciones) el 22/02/2021 14:52:40
Ya mirando esos datos hay un poco de más luz.

Aclaro que el modelo que propuse, lo hice pensando en que Administraciones_Publicas y Policias son muy similares en su estructura, entonces consideré crear una estructura donde se almacenen ambos y se distinguen por el tipo de fuente.

Pero bueno suponiendo que tu primer modelo está bien, tendrías que enlazar todo mediante el ID_Fuente.

Tus estructuras desde luego tendrán que tener integridad con esa columna, no de otra forma te funcionaría, es claro que cuando yo ingrese un registro en Administraciones_Publicas, Policias y Entidades ya ese ID tiene que existir en Fuentes de Derivacion que es como pivote.
En condiciones normales estos querys deberían ser capaces de obtener lo que quieres.

-- Si quiero obtener datos de Fuentes Derivacion
SELECT VT.ID_VTSH, FD.FUENTE
FROM VTSH VT
INNER JOIN fuentes_derivacion FD ON VT.ID_VTSH = FD.ID_Fuente

imagen_2021-02-22_083737

-- Si quiero obtener datos de Administraciones Publicas
SELECT VT.ID_VTSH, FD.FUENTE, AP.Administracion
FROM VTSH VT
INNER JOIN fuentes_derivacion FD ON VT.ID_VTSH = FD.ID_Fuente
INNER JOIN Administraciones_publicas AP ON AP.id_fuente = FD.ID_Fuente

imagen_2021-02-22_084647

-- Si quiero obtener datos de Policias
SELECT VT.ID_VTSH, PL.POLICIA
FROM VTSH VT
INNER JOIN fuentes_derivacion FD ON VT.ID_VTSH = FD.ID_Fuente
INNER JOIN POLICIAS PL ON PL.id_fuente = FD.id_fuente

imagen_2021-02-22_084751

-- Si quiero obtener datos de Entidades
SELECT VT.ID_VTSH, ED.ENTIDAD
FROM VTSH VT
INNER JOIN fuentes_derivacion FD ON VT.ID_VTSH = FD.ID_Fuente
INNER JOIN Entidades ED ON ED.id_fuente = FD.id_fuente

imagen_2021-02-22_084915

Yo solo estoy mostrando el ID de VTSH, ya tú modifica para que muestres más columnas de ésta y las demás.

No sé si esto cumpla con tu objetivo, por lo demás te recomiendo que cambies el tipo de dato nvarchar por varchar, ya que el primero te consume más recursos y te crece la BD demasiado.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Mike (6 intervenciones) el 22/02/2021 15:47:07
Hola.
Pues cada vez me explico peor.
Todas esas consultas, con la estructura que tengo ya me funcionan. Pero no es la consulta que yo necesito.
La respuesta que busco es :

[consulta ....] WHERE VTSH.Id_VTSH = 2

Respuesta

Ya que un id_VTSH sólo puede venir de un sólo lugar, sea ENTIDADES, POLICIA, ETC...

donde 3 de la Tabla correcta seria GUARDIA CIVIL (en este caso)

Sé que me falta una tabla intermedia, pero no sé como plantearla, y mira que estos días estoy buscando mucho eh !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Relaciones entre tablas

Publicado por anonymous (43 intervenciones) el 22/02/2021 15:58:18
Entonces tu modelo original habrá que replantearlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en SQL (en relación al último mes)
Gráfica de SQL

Relaciones entre tablas

Publicado por Mike (6 intervenciones) el 23/02/2021 11:39:22
Sí, me lo supongo, pero no sé cómo plantearlo..
Puedes Orientarme ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar