Miren esta duda. Muy importante.

[email protected]
03 de Noviembre del 2008
Saludos, amigos, me dirijo a ustedes para plantearles una duda:
Tengo una tabla llamada Deporte, del cual se conoce id, nombre y sexo en que se practica. Tengo una tabla llamada Atleta, del cual se conoce: id, nombre, sexo,.... Pues bien, un atleta practica uno o varios deportes, por lo que creo una tabla nueva Atleta_Deporte que tiene el id del atleta y el id de cada deporte practicado por el atleta. La cosa esta en que quiero hacer un trigger que se dispare cada vez que inserto en la tabla Atleta_Deporte un nuevo id de deporte practicado por un atleta, este trigger debe garantizar que el deporte cuyo id estoy poniendo en la Atleta_Deporte se practique en el sexo del atleta, en caso contrario se cancele el insert, porque si no lo hago puede entonces darse el caso que le ponga a un atleta masculino un deporte que solo se practica en el sexo femenino, y eso obviamente crea inconsistencia en la base de datos.
Yo tengo otras alternativas para garantizarlo, ya sea por código de la aplicación o en el mismo procedimiento almacenado que uso para asignar un deporte a un atleta, pero creo que usando un trigger debe quedar mas profesional, porque incluso si alguien inserta desde la misma base de datos un nuevo deporte al atleta pues si esta el trigger este se dispara también.