Prozac escribió:
La otra cosa que tambien influye mucho es que la ventaja de hacerlo en BD es que tendras integridad en los calculos, cuando una aplicacion, un producto mas bien, pasa muchos ciclos de desarrollo y calculos son dejados a diferentes instancias de la aplicación, suele suceder que cada instancia consigues un resultado distinto, digamos que tienes datos que son accedidos desde aplicaciones de escritorio y web y cada aplicacion hace los calculos en vez de hacerlos la BD, quizas en algun redondeo las aplicaciones se comportan distinto, esas son cosas a tomar en cuenta.
Igual como dice dano, depende de muchos factores, hay logicas de negocio que ya de por si es muy jodido implementar en un SQL, pero yo personalmente me inclino un poco mas hacia dejar el trabajo a las BD.
Saludos
Para eso existen las transacciones que, si no me equivoco, son soportadas por la mayoría de lenguajes y frameworks.
Yo prefiero siempre definir las reglas de negocio y la programación en general en términos del dominio del problema.
Hacer debug a éste código, por ejemplo, es mucho más sencillo en esos términos:
Código :
class Product < ActiveRecord::Base
has_many :input_orders
has_many :providers, :through => :input_orders
has_many :stores, :through => :input_orders
validates_presence_of :name, :on => :create, :message => "debe tener un valor"
validates_presence_of :stock, :on => :create, :message => "debe tener un valor"
validates_numericality_of :stock, :on => :create, :message => "no es un número"
validates_uniqueness_of :additional_code, :on => :create, :message => "debe ser único"
end
En términos de performance, no hay demasiados problemas si se tiene un buen diseño de BD. Finalmente los SGDBs están preparados también para hacer automatizaciones a queries sencillos.
Pero creo que es un tema que linda también con la experiencia personal y expertise en el tema. No necesariamente un enfoque será mejor que otro.