Tabla de historicos

01/11/2005 - 17:01 por Pablodegerli | Informe spam
Hola gente
Tengo la siguiente consulta
Para una tabla de historicos que es una registro identico a de una tabla al
momento de hacer una modificacion en esta ultima.El tema es como indico la
operacion que hizo ese cambio.
Tabla Historico
Id_Historico
Id_Operacion1 null
Id_Operacion2 null
Id_Operacion3 null
Id_Operacion4 null
o
Id_Historico
Id_Fk not null
TipoOperacion int
Tipo operacion indicaria alguna de las 4

En un caso de seleccion haria
Select Campos from Historico H
left join Operacion1 Op1 on H.Id_Operacion1 = Op1.Id_Operacion1
left join Operacion1 Op2 on H.Id_Operacion2 = Op1.Id_Operacion2
left join Operacion1 Op3 on H.Id_Operacion3 = Op1.Id_Operacion3
left join Operacion1 Op4 on H.Id_Operacion4 = Op1.Id_Operacion4
o
Select Campos from Historico H
left join Operacion1 Op1 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 1
left join Operacion1 Op2 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 2
left join Operacion1 Op3 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 3
left join Operacion1 Op4 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 4

Espero se entienda

Como siempre, gracias de antemano
 

Leer las respuestas

#1 Gustavo Larriera [MVP]
01/11/2005 - 17:46 | Informe spam
El diseño más puro desde el punto de vista de normalización, es el segundo
que propones, si pasas el tipo de operación a la tabla de operaciones.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Pablodegerli" wrote in message
news:
Hola gente
Tengo la siguiente consulta
Para una tabla de historicos que es una registro identico a de una tabla
al
momento de hacer una modificacion en esta ultima.El tema es como indico la
operacion que hizo ese cambio.
Tabla Historico
Id_Historico
Id_Operacion1 null
Id_Operacion2 null
Id_Operacion3 null
Id_Operacion4 null
o
Id_Historico
Id_Fk not null
TipoOperacion int
Tipo operacion indicaria alguna de las 4

En un caso de seleccion haria
Select Campos from Historico H
left join Operacion1 Op1 on H.Id_Operacion1 = Op1.Id_Operacion1
left join Operacion1 Op2 on H.Id_Operacion2 = Op1.Id_Operacion2
left join Operacion1 Op3 on H.Id_Operacion3 = Op1.Id_Operacion3
left join Operacion1 Op4 on H.Id_Operacion4 = Op1.Id_Operacion4
o
Select Campos from Historico H
left join Operacion1 Op1 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 1
left join Operacion1 Op2 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 2
left join Operacion1 Op3 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 3
left join Operacion1 Op4 on H.Id_Fk = Op1.Id_Operacion1 and
H.TipoOperacion = 4

Espero se entienda

Como siempre, gracias de antemano


Preguntas similares