After reading this post (business logic database or application layer) I still don't have the sufficient reasons to fight the "business logic in database" topic.
In my current work, there is a lot of db transaction (actually) and all that crappy code is hard to maintain, a lot of duplication in the stored procedures, so if you want change a value in a table for a bit, you will need to find all of those procedures and change them to what you want. Same happens if you need to change a little bit a table design.
All the current developers know SQL very well, but they still being not experts in any DATABASE as a engine(8 devs).
Currently we are planning to migrate the entire core to a new version (including database design). And I need some examples of:
- Why Business Logic in Database is sometimes EVIL ?
- How much and when Business Logic in Database is a good practice ?
- Why Business Logic in Application Layer is better for an enterprise application. ?
App Language: Java
Database: Oracle11g
The application will have Services, served as HTTP pages and as WebServices.