SQL Server - Ayuda Trigger Insert

 
Vista:
sin imagen de perfil

Ayuda Trigger Insert

Publicado por mute (3 intervenciones) el 05/07/2015 02:30:40
Hola a todos, este es mi primer post. Y ojala puedan ayudarme con esta duda que tengo.

Tengo el siguiente diagrama

rnwbaGevYSkOYuXtaG11hTwXcS7471kGmsIx5ZwBYqNpfgkhNWJHLQJ3K1fUdwXDPeaodDTRPw7qN4FsSugldA==

Y asi sería la tabla Turno con un par de registros agregados:

RO7uFkjNgoFAw1VjYo13v3emdN5RxuHExulEIYnSlRTYuglYIlTLhDyd20Xt0LMHgDT5SZTM5Upp-62SIp0Yrg==


Quiero , que cuando se inserte un nuevo turno, no sucedan estas dos opciones:

- Que se inserte un mismo paciente a la misma fecha en dos sucursales diferentes

- Que se inserte un mismo medico en mas de una sucursal en la misma fecha

Como sería el trigger, ya que estoy muy mareado y no logro poder confeccionarlo.

Desde ya, muchas gracias !!
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda Trigger Insert

Publicado por Isaias (4558 intervenciones) el 06/07/2015 18:39:31
¿Qué base de datos manejas?
¿Cómo es que estas insertando los turnos?

De ser mediante un PROCEDIMIENTO ALMACENADO, ¿Por qué no validas desde este punto?
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

Ayuda Trigger Insert

Publicado por mute (3 intervenciones) el 06/07/2015 18:45:45
Hola.

Es una base de datos para manejarlo desde java. Los datos los insertare desde alli con queries de SQL (no por store procedure).

Lo que hice para evitar que, por ejemplo, haya un mismo paciente atendiendose el mismo dia a la misma hora fue crear un CONSTRAINT UNIQUE de (cod_Paciente, cod_Medico, fecha_Hora)
Y otra restriccion, para evitar que haya un mismo medico atendiendo el mismo dia/hora en dos sucursales, agregando un CONSTRAINT UNIQUE de (cod_Medico, fecha_Hora, cod_Sucural)

No se si será lo más correcto, pero evito registros duplicados.

Agradezco cualquier opinion
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: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda Trigger Insert

Publicado por Isaias (4558 intervenciones) el 06/07/2015 19:44:01
Esa es la SOLUCION TOTAL, evitas que se cumpla tu "regla de negocio", ahora falta avisarle a quien esta capturando los datos, del problema encontrado.
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 Wilfredo Patricio Castillo
Val: 268
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda Trigger Insert

Publicado por Wilfredo Patricio Castillo (189 intervenciones) el 07/07/2015 17:59:50
Alli creo que hay un problema de diseño, no se deben dar las relaciones circulares, y alli veo prepaga,turno,paciente y el cod_prepaga está que se propaga por todas partes.

Normaliza bien y analiza bien los procesos.

Saludos cordiales
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

Ayuda Trigger Insert

Publicado por mute (3 intervenciones) el 07/07/2015 19:56:00
Ok. Voy a darle una vuelta de roscar al diseño, a ver como puedo modificarlo. No había visto eso de las relaciones circulares. Gracias
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