2011-03-09 17 views
6

desde la capa DAO es típicamente responsable de acceder a los datos de DB dado cierta entrada (como un user_id, etc.), en caso de que ocuparse de la comprobación de la validez de su entrada?DAO de validar la entrada

E.g. si hay un método DAO para buscar un usuario basado en user_uid, que es una clave primaria (> 0), ¿debería el método DAO comprobar siempre esta restricción antes de realizar la llamada DB necesaria? ¿O debería suponerse que cualquier capa más arriba que llame a este método se encargará de la restricción y nunca la pase a -ve id? El método DAO puede publicar esta restricción en su documento para que los programadores que escriben capas superiores lo sepan.

Qué enfoque utiliza habitualmente y por qué?

¡Gracias y saludos!

Respuesta

5

La respuesta depende de si la capa de negocio (presumiblemente por encima de la capa de datos) está validando estos valores, y si la capa de datos se puede llamar desde cualquier otra capa (por ejemplo, capa de flujo de trabajo).

lo general, es una buena idea para la validación del racimo en la capa de negocio, y restringir las comunicaciones de capas por lo que la capa de datos sólo se puede llamar a través de la capa de negocio.

También añadimos la validación de claves/null comprobar en los procedimientos almacenados, en caso de que otro servicio en el futuro decide intentar poner los datos no válidos en.

6

La capa DAO no debe comprobar la validez de la entrada. La integridad y la coherencia de los datos se comprueban en la capa de persistencia (por ejemplo, claves externas) y la validez relacionada con el "negocio" se comprueba en la capa empresarial. La única responsabilidad de la capa DAO es comunicarse con la capa de persistencia para almacenar o recuperar datos.