I have been coding small to medium size applications for several years now, mostly business applications or database-driven applications, In each new project i feel tempted to start with the database design and then write the code that sends/retrieves data to/from the database, MVC frameworks are really helpful to organize my code for web applications. But that's it for me.
I could argue that any application is more or less the same, stores and retrieves data. And i think having a good database design makes the job a lot easier, So what else do i need? And why? Any examples?
I am trying to improve my skills and knowledge to be able to handle bigger projects, I find OOP, OOAD and software design/architecture really interesting, but i don't know why on earth i would need them in data-driven applications (i know it's me!), I find a lot of articles talk about design patterens, business objects, serive layers, architecture and more, but when i think of any new application, it's always the same, I have a good database design and then i am ready to go, if the client needs more feature, i modify the database strucutre or add new tables/views , add new screens/web pages then i am done. What is wrong with that approach?
For instance, there was a directory web application i was asked to do, i thought of designing the objects first then converting them into a database structure using ORM, but i found it time consuming, i wondered why i had to design both the objects and the data, and i went for my old approach to save time and effort.
I know it's me, I know I am mistaken, but i think having more layers or tiers between the GUI and database is an extra effort and extra time, so when does it matter? When is it worth it? so i am asking: What is the use of OOP in developing business/database applications? Any example would be appreciated
In other words When do i have to separately design both the objects and the database schema? and what are the benifits? Any example??