Planning is essential
Obviously, planning the database is essential and mistakes can be costly. But designing databases for the Web throws up some unique design challenges.
"It's a huge investment designing and building the database and if a mistake is made when it's designed, it can cost a fortune later on to try and change the structure, migrate all the data, and potentially change any code that's talking to that structure," says Jason Hatch, CTO of Web site developer Presence Online. "So the really important part of all of this is to do the proper business analysis up front and understand what the needs are going to be."
He advises that this should not just be for the next couple of months, but probably the next 12-24 months for most businesses, and even longer with legacy data.
Even if you outsource the development of the database, according to Hatch, having staff with the right skills is still important. "It's really important to make sure that the people you have are skilled enough to keep the database running or the system you have is easy enough for the people you have got." Otherwise, expect to make a lot of phone calls to the consultants who wrote the database. "If you have an ongoing relationship with the consultants that's fine, but it can be expensive in the long run."
There's a strong price-performance trade-off with Web site database development--building the database to perform well takes up expensive development time.
"Making sure there's proper connection pooling, making sure the tables have been created in such a way that there's fast enough access to the data, and that the queries have been optimised. Obviously, doing that takes development time."
Hatch says it also depends on how many hits your site is expected to have and, again, you've got to look ahead. "If you're planning to deal with 100 customers a day that will require a different architecture to 1000 or 10,000 customers a day."
However, you can also run the risk of over-planning, catering to customers you will never serve, and growth that never happens. "If people have a good business plan and they understand what they need and what their growth should be, hopefully they can plan the rest of their business. This includes hardware and the infrastructure around that," says Hatch.
David Pickering, principal software consultant at e-business software developer BMC Software, agrees. "In the old days you used to design an application for a database. You knew that an internal system would have 200 users, so you'd design the application to have 200 users. The challenge is when you put something on the Web you don't know whether it's going to have 200 people or 10,000 people concurrently."
This presents a challenge when coding the database, which can lead to performance issues. "Should they be putting SQL statements into stored procedures and all they do is call a stored procedure, or should they be calling it from the front end and call more data across the network?" Pickering asks.













