Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Restricciones

Estas en el tema de Restricciones en el foro de Mysql en Foros del Web. Buenas tardes!!!! les comento mi inquietud, se puede restringir valores en los campos de una tabla por ejemplo yo quiero que en un campo que ...
  #1 (permalink)  
Antiguo 21/12/2012, 17:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 291
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta Restricciones

Buenas tardes!!!! les comento mi inquietud, se puede restringir valores en los campos de una tabla por ejemplo yo quiero que en un campo que es de tipo varchar(10) no introduzca ni valores null ni vacios
en un campo double valores mayores 0
y en un campo date fechas entre 01/01/2000 al 01/01/2040
yo lo que quiero es saber si existe la posibilidad de configurar la tabla directamente asi me ahorro tiempo programando. Gracias!!!!
  #2 (permalink)  
Antiguo 21/12/2012, 18:27
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Restricciones

Sólo se puede configurar los campos para que no acepten NULL, pero el resto de las cosas requeriría la existencia en MySQL de las restricciones de tipo CHECK, que no hay.
Otros DBMS si tienen ese tipo de cosas, pero en el caso de MySQL no.

Implementarlo vía TRIGGER es bastante malo, porque no existen en MySQL los TRIGGER opcionales, esto es, pueden controlar algo de eso, pero no puedes evitar que la operación se ejecute (sea INSERT o UPDATE).

Normalmente ese tipo de restricciones es conveniente que se implementen en la aplicación y no en la base, para evitar que la base desperdicie recursos en cosas que la aplicación puede hacer mejor (en ella puedes incluso hacer que sea imposible ingresar esos valores). En ese sentido, en las software factories se considera que derivar esa responsabilidad a la base es una mala práctica de desarrollo que se debe evitar.

En la empresa donde trabajo, por ejemplo, las especificaciones de desarrollo dicen expresamente que no se debe enviar a la base ningún valor en ninguna operación, sin estar previamente validada. Y Considerando que la aplicación core tiene más de 500 vistas e impacta en más de 5 millones de clientes... puedes darte una idea de que saben de lo que están hablando.

En definitiva: Hay dos formas de manejar lo que quieres: 1) En la aplicación (recomendable), y 2) Con stored procedures (preferentemente no).
Es eso, o cambiar de DBMS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/12/2012, 06:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 291
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Restricciones

Muchas Gracias por tu respuesta me sirvio mucho, ya empiezo a modificar mi aplicación muchas gracias Felices Fiestas!!!!

Etiquetas: restricciones, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.