The Importance of Good Database and Application Design

Posted On: 10/9/2009 6:58:49 PM by jstarr

Working in an industry such as IT, there are no shortage of horror stories and anecdotes of worst-case practices.

Database and application design is something that seems to surprise us time and time again as we see businesses set themselves up for failure further down their development cycle.

When developing a new website, web application, or business application, a good design is of utmost importance.  Companies often find themselves locked into less than ideal solutions after significant investment has been outlayed to build up an application around an inferior design.

Database design really means planning out your applications structure on paper, or with a database designer tool.  Entity relationships are very important, as are the usage of primary and foreign key references.  It is entirely shocking how many cases we've seen where an application has no referential integrity, no primary keys, no normalization, etc, etc.

If you are hard coding something that could ever change in the future, you need to revisit your approach!  Database tables have very low overhead and really should be used accordingly.

Peer code reviews are very important.  It's easy to fall into the trap where common code is reused, even if it's not the ideal solution for the application. 

Infinistorm's projects all go through mutliple code reviews -- what one developer might think is the "right" solution may actually not be.  It's easy to overlook a use case when dealing with large projects. The importance of having other sets of eyes inspecting, testing, and reviewing the code is instrumental in having a scalable application that can withstand the test of time.

Developing a new application requires significant planning well before a single line of code is written.  We've seen a lot of businesses dive in and come up with their designs on the fly, as they go.  This is a surefire way to fail.

Knowledge is power.

Permanent Link:

Subscribe to the Infinistorm LLC News RSS Feed

About this blog.

Hi!  My name is Joshua Starr.  I'm the CTO and co-founder of Infinistorm and responsible for all networking, virtualization, and security related aspects of Infinistorm.  I am also an avid programmer that enjoys spending time figuring out new and interesting problems.  My expert knowledge in a variety of tech related topics should hopefully benefit most of you.

Follow me on TwitterFollow my Blog Posts via RSS