Código:
pero mi duda especificamente es como hacer mi procedimiento almacenado update, que es el que actualizaria el valor de mi contador, mi duda es si es correcto que implemente esa regla del negocio en mi procedimiento almacenado de la siguiente manera:CREATE PROCEDURE SelectByDescripcionContador @DESCRIPCION_CONTADOR varchar(30), AS SELECT [DESCRIPCION_CONTADOR], [VALOR_CONTADOR], FROM [CONTADORES] WHERE [DESCRIPCION_CONTADOR] = @DESCRIPCION_CONTADOR
Código:
de esta manera solo basta con llamar a este procedimiento desde mi capa de reglas para que el servidor de bases de datos sea el que haga la suma y la actualizacion, o bien seria recomendable hacer mi procedimiento almacenado update de la siguiente manera:CREATE PROCEDURE ContadorUpdateValor @DESCRIPCION_CONTADOR varchar(30), AS SELECT [VALOR_CONTADOR] = [VALOR_CONTADOR] + 1 --Aquí esta la regla del negocio FROM [CONTADORES] WHERE [DESCRIPCION_CONTADOR] = @DESCRIPCION_CONTADOR
Código:
e implementar esa suma en el codigo fuente de mi capa de reglas del negocio, de tal manera que cuando llame a mi capa de datos para que actualice mi tabla el valor ya este calculado por la regla del negocio.CREATE PROCEDURE ContadorUpdateValor @DESCRIPCION_CONTADOR varchar(30), @NUEVO_VALOR int, AS SELECT [VALOR_CONTADOR] = @NUEVO_VALOR --No hay regla del negocio aqui FROM [CONTADORES] WHERE [DESCRIPCION_CONTADOR] = @DESCRIPCION_CONTADOR
No se si me explique correctamente, mi duda es que procedimiento almacenado Update usar, ¿implemento esa regla en la capa de reglas o en mi procedimiento almacenado?, quizas desde el punto de vista de la eficiencia sea aconsejable implementar la regla en mi procedimiento almacenado, pero desde el punto de vista de la programacion en tres capas, que es el punto de vista que me interesa, lo correcto sea implementar esa regla en el codigo fuente, En fin si no me explique espero me lo hagan saber, el ejemplo que les puse fue solo ilustrativo, pero en el proyecto que estoy desarrollando actualmente me he enfrentado muchas veces con problemas de diseño de este tipo, quiero saber si he tomado la desicion correcta pues algunos programadores se han quejado.
Saludos y gracias de antemano por sus comentarios .