El día 21 de noviembre de 2011 16:48, Alejandro Carrillo
<faster...@yahoo.es> escribió:
> Buenas tardes,
> Que opinan de lo siguiente:
>
> http://kartones.net/blogs/coco/archive/2009/11/27/la-capa-de-negocio-ii-aspectos-de-implementaci-243-n.aspx
> "En ocasiones la funcionalidad de borrado de datos es asociada con un solo
> procedimiento almacenado que se encarga de orquestar el orden de borrado, en
> estos casos, el procedimiento almacenado contiene lógica de negocio :
>
> CREATE PROCEDURE [dbo].[deleteCustomer]
>     @CustomerId int
> AS
> BEGIN
>     DELETE FROM CustomerAddresses WHERE CustomerId = @CustomerId
>
>     DELETE FROM CustomerSalesPerson WHERE CustomerId = @CustomerId
>
>     DELETE FROM Customers WHERE CustomerId = @CustomerId
>
> El procedimiento almacenado anterior muestra un ejemplo de como no deberían
> hacerse las cosas, en su lugar, debemos crear 3 procedimientos almacenados,
> uno por cada DELETE y orquestar la transacción de borrado en la capa de
> negocio.
> Los procedimientos almacenados deberían ser una herramienta para persistir
> datos, no un repositorio de lógica de negocio, además los procedimientos
> almacenados deberían operar solo con una única tabla, excepto aquellos en
> los que sea necesario realizar un join con varias tablas."
> Espero sus opiniones, a favor y/o en contra, acerca de esto,
> Alejandro Carrillo
>

Yo creo que en tanto pongamos la "lógica de negocios" en el motor
relacional no garantiza la "consistencia semántica" de la aplicación y
nos puede "atajar" algún error cometido en la programación de la
interfaz. Por ejemplo si un requisito de una contabilidad es el
respeto a la partida doble, o sea que los registros de cada asiento
balanceen (sumen 0), no veo mal que exija que cualquier alta o
modificación de asiento sea rechazada por el servidor si la condición
de balance no se cumple. Es parte de un viejo criterio de
"programación defensiva".


-- 
Guillermo O. Burastero
Usuario GNU/Linux #84879 - http://counter.li.org/
Bahía Blanca, Buenos Aires, Argentina
Tel. +54 (291) 454-6132 - Móvil [15] 574-3173
MSN: guillermo.burast...@gmail.com
ICQ: 97148268
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a