Nearly every ecommerce site revolves around a database to support inventory, listings and transactions. Building out the database can be a challenge. Here is what to expect.
Issues You Will Confront When Using Third Parties To Build Out Sites
Experienced web site database developers will leave plenty of time for debugging, troubleshooting and the unexpected instances. Even the best database development companies will run into set backs along the way though. Ensuring that you work with your developer to achieve a realistic time line is very important. At times, a database development company may estimate a project overly optimistically to win a bid. Choosing a company based on the shortest time line can often lead to trouble.
Also, relying on a deadline to be met can cause trouble if unforeseen occurrences pop up. Often these occurrences are the result of the originator of the work not foreseeing a business process necessary for the system. 'Oh by the way, for that auction you're working on, I also need integrated forums so that every auction item can have a forum thread.' This type of added on item is sure to stretch a timeline. If you are not realistic in dealing with timelines, relations between developer and originator can sour easily.
Another favorite of database developers is the old agree on a proposal in October, client disappears for six months, then show up and expects the same timeline. Obviously if a developer estimates a project will take four months, waiting to start the project may result in delays because other clients will have come along.
Another favorite of web database developers is the push to show progress. If the originator of a project pushes for an update in undue time, a developer may rush to get to the coding and show an update. The first steps are the architecture of the whole system. This includes planning where data is stored, how it is most efficiently referenced and how the system can be expanded. Just like a construction worker needs a solid blueprint, the database coder and designers need a solid plan before building. Insisting on a plan for your database and not a code update is a good step to avoiding the pitfall of a poorly planned database.
Designing a database driven web site for heavy traffic takes considerably more time than designing a database for low traffic sites. Designing a database for heavy traffic sites generally involves designing processes to minimize hits on the database. For starters, don't even think about storing images in your database. Instead, store references to your images.
Moving beyond the novice level of database architecture, one can reduce database hits by publishing flat HTML pages from the database periodically, so the database is not hit on each page access. Advanced web database architecture for high traffic sites might include publishing flat pages for often searched terms to once again reduce hits on the database. Slow databases kill sites, so limiting access wherever possible is important.
Similar to high traffic site considerations, search times can be dramatically reduced by designing databases for high volume traffic. A simple example is to have a separate table just for keywords that are likely to be searched that references the related pages to those keywords. This allows a search function to search this small table of keywords as opposed to one large table of pages with all of the content in it. This concept can be related to a card catalog in the library. Instead of reading every book on the shelf, one can simply go through the card catalog and find the specific book one needs.
You need backups. Automated backups at that. If things can go wrong, they will go wrong. At the worst possible moment. That is just how it is.
With backups, there are several types. You can have a RAID system that will mirror hard drives. You can also have a server-to-server backup system that transfers data to another system. There can also be a secure download backup automated from a local machine.
Security is of course a huge issue with any web database. Even if one is simply storing personal data with no financial information, the database can be a target of spammers or identity thieves. There are a myriad of different security methods. Of those, encryption of data should be used, not just during transfer through an SSL, but in the database as well. Keeping forms secure is also very important. A periodic security audit on any major web database system is essential.
"The best-laid plans of mice and men often go awry." This statement is as true with web databases as any part of life. Perhaps the Unforeseen Instance is an extra requirement that only became apparent after the project was started. Perhaps it's a hard drive going bad at just the wrong time, or maybe even the dog ate your...laptop. Whatever it is, the Unforeseen Instance is almost inevitable, so be sure to put away a little extra time for this.
To wrap things up, when working with database developers, first ensure they have a solid work history designing databases. Be sure to insist on architecture and not to push your designer into rushing the project. Make sure to have a plan for backups and go over your security time and time again.
No comments:
Post a Comment