Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/01/2011, 07:14
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿ Relación 4:n "4 a muchos" ?

Una relación 4:N es una relación N:N donde la restricción de que debe haber al menos 4 registros de la segunda tabla relacionados con la primera bien la puedes manejar en la aplicación.
Técnicamente hablando, desde el punto de vista ortodoxo requiere una tabla adicional para manejar las relaciones; desde otra óptica, poner 4 FK o poner 32, no es problema, por lo que se puede manejar perfectamente así. A MySQL no le importa (tengo tablas con muchas relaciones como esa).
La diferencia esencial es que si lo manejas en la aplicación, controlando de que se indiquen las relaciones, no desperdicias tiempo de envio y respuesta a la base para saber si están o no todos los valores, mientras que si lo haces en la base la restricción funciona aunque no valides, porque no puedes enviar un NULL o un valor ilegal en esos campos, pero deberás gestionar la respuesta de MySQL para el caso de los rechazos.

En definitiva es una decisión de diseño. Cualquiera de las dos es viable. Por cuestiones de performance de sistema, yo haría que esa validación ocurriera en la aplicación, de ese modo no desperdicias recursos de la base en validaciones menores. No te olvides que para ello solamente necesitarías que el formulario valide que los valores están puestos antes de habilitar el botón de "Grabar"... Es mucho más sencillo.

Simplificando: No hagas que la base realice validaciones que la aplicación puede hacer mejor y más rápido...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)