Soy un estudiante de ingeniería de sistemas, y todos mis maestros y amigos (que realmente trabajan en el área) dicen que es mejor tener tanta lógica como sea posible implementada en la base de datos (consultas, vistas, activadores, < a href="http://en.wikipedia.org/wiki/Transact-SQL"> T-SQL , etc.). Creo que es mejor tenerlo en el código.
Sus razones son:
-
Si necesitan cambiar el idioma, casi toda la lógica estará en el base de datos; por lo tanto, el tiempo de implementación será mínimo.
-
Los cambios en el idioma son más comunes que en la base de datos.
Mis razones son:
-
Es obvio (al menos en el entorno actual de mi país) que no cambian el idioma de los proyectos de manera "fácil". (He visto programas que todavía están en FoxPro , porque si funciona, no es necesario cambiarlo).
-
Los lenguajes de programación tienen que ver con la funcionalidad, mientras que las bases de datos son con datos. Puede tener la funcionalidad de programación en las bases de datos, pero creo que debería limitarse a los componentes que afectan a los datos.
-
Es más fácil implementar nuevos requisitos (por ejemplo: si el cliente desea una API).
-
Normalmente, cuando usan la lógica en la base de datos, el resto de la lógica que se implementa en el código es más parecida a un espagueti (por ejemplo, funciones aleatorias).
-
En general, es más habitual tener más programadores que administradores de bases de datos (DBA).
¿Qué implementación es la mejor?