Descargo de responsabilidad: Esto no es un "no use procedimientos almacenados - ¡piense en los niños!" publicar, y no pretendo encender una guerra de llamas. Solo sugiero que la reutilización de código es más fácil y posiblemente más adecuada para ciertas situaciones y plataformas que otras.
Código La reutilización como concepto generalmente mejora una base de código. Mantiene las cosas DRY y comienza a formar una capa de funcionalidad común para resolver problemas comunes de la misma manera.
Sin embargo, como todo, uno puede equivocarse (con el poder viene la responsabilidad, bla, bla, bla).
Es relativamente simple en la mayoría de los lenguajes de programación modernos reutilizar el código, ya sea escribiendo funciones o incluso creando marcos completos que se pueden usar una y otra vez. Sin embargo, en T-SQL es truculento porque tienes menos opciones. Los procedimientos almacenados pueden hacerlo, pero ya has visto cuán incómodos pueden ser.
Mi preferencia personal es mantener la lógica comercial fuera de la base de datos. Eso significa que no uso vistas, UDF, sprocs, etc. (a menos que después de la creación de perfiles de rendimiento pensemos que podemos acelerar algo usando estas técnicas) y en cambio lo mantengo en el código de mi aplicación. Esto a menudo causa pensamientos de una "capa de lógica de negocios", pero hay varios sabores de eso, por lo que es probablemente un nombre inapropiado. Ciertamente, no es código directamente detrás de los manejadores de clic de UI y demás.
Mi objetivo es limitar la base de datos a almacenar y recuperar datos, porque eso es lo que realmente les sirve. Todos sabemos cuán torpe y obsoleto T-SQL puede ser como un lenguaje (piense en manejo de excepciones, implementación, cursores, etc.). Ser independiente de la base de datos es completamente imposible si su aplicación está escrita en la base de datos, y tampoco puede escalar su aplicación, porque la base de datos es la aplicación. Si tiene esa lógica empresarial en el código de la aplicación, puede ampliarse mucho más fácilmente.
En este caso, la "lógica comercial" son las consultas y transformaciones utilizadas para generar sus informes, y yo investigaría cómo sería posible reutilizar el código en su herramienta/código de informe, antes de considerar otras opciones.
"En estos días soy de la opinión de que la reutilización del código no mejora necesariamente el mantenimiento en el diseño de la base de datos". es la pregunta principal, el resto del texto es para el contexto. – gb2d
¿Hay alguna razón para la limitación específica en el título de los procedimientos almacenados? Estos no son el único mecanismo para la reutilización de código. –
No realmente. Entiendo que hay varias formas de lograr la reutilización del código. – gb2d