
16/09/2010, 12:13
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 4 meses Puntos: 2658 | |
Respuesta: Datos Mysql Son dos problemas diferentes:
El primero (valores dentro de un rango) es lo que se denomina CHECK CONTRAINT y no está implementada en MySQL. Existe en SQL Server, en DB2 (creo) y en Oracle, pero no en MySQL.
El segundo problema es ineficiente: Sumar todos los valores de una tabla cada vez que esta se actualiza requiere de un TRIGGER que a su vez realice la actualización. Es innecesario en la mayoría de las ocasiones porque las sumas se realizan igual de rápido en las consultas, que haciendo una actualización de datos en las tablas. Por eso no se suelen guardar en las bases de datos los valores calculables. Es una pérdida de tiempo y de espacio. Las validaciones se recomienda hacerlas en la aplicación, ya que los lenguajes de programación son mucho más potentes y tienen mejores recursos para realizar esa tarea, mientras que la base es mucho más potente en cuestiones de cálculo de relaciones y operaciones estadísticas.
Cada cosa tiene su sentido. Validar en la base no es una buena idea. Validar contra la base, es lo correcto, pero eso lo hacen las aplicaciones...
Si pudieses ejemplificar mejor qué es lo que estás tratando de hacer te podemos orientar mejor.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |