With increasing frequency over the past three months, I’ve been receiving email from webmasters asking me how they can database their growing site. This article won’t tell you everything that you need to do, step by step. But rather, it will introduce you to the technologies and options available to you in this endeavor.
1.) What does it take?
I’ll start by saying this: It isn’t going to be easy. Unless you have a knack for programming and database design, and a lot of experience to boot, you’ll either have to end up hire a database programmer ($50+ US/hr) or spend hundreds of hours learning how to do it yourself. Before you start a project of this magnitude, ask yourself whether it is really necessary. Is the time and/or money that you invest in the databasing of the site going to pay off within a few months? Could you make-do with a couple of Server Side Include calls instead? Keep in mind that if you want to add features such as real-time inventory status, extensive product catalogs, or personalization, you have no choice but to go with a database.
2.) What are my options?
You have a few options open to you:
i.) Do it all yourself
If you have programming experience in a language such as PERL, you shouldn’t have many problems databasing your site, although you might have to spend a couple dozen hours learning to work with mySQL and design a database.
On the other hand, if you have little or no relevant programming experience, learning how to design a database, work with mySQL/mSQL/Access and program in a language like PHP will consume a considerable amount of time.
ii.) Do some of it yourself, and outsource some parts of it
If you’re short on time, and you have some programming experience you may want to consider doing some of the simpler tasks yourself and outsourcing the rest. Be aware though that good database programmers are not cheap. Be prepared to pay $50-$250 US per hour.
iii.) Hire someone to do everything for you
If you have some cash to burn, hire a professional to do it all for you. Depending on your needs, you’ll end up paying $5000 US+ for a complete database.
3.) The technologies that you have available
The first thing that you need to do is decide whether the site will be hosted on an NT or Linux/Unix server. I won’t get into the pros and cons here. I’ll sum it up like this: Doing databases on an NT server is easier than database programming for Linux, but it’s going to cost you a lot more. NT is also less robust than Linux (please, no hate mail. Even Microsoft uses Unix/Linux on some of their sites).
i.) Linux/Unix Options:
PERL/ePerl – For a smaller site, you could write a database that uses a PERL script to access text files residing on the server. The other option is ePERL, which allows you to embed PERL commands within an HTML file. ePERL is very similar to PHP (below).
PHP – PHP is an easy to learn language that you embed into standard HTML documents. PHP code is excellent at connecting to a mySQL database to grab data, which can than be formatted and displayed.
ii.) NT Options:
Cold Fusion – Cold Fusion, developed by Allaire, is a powerful yet relatively simple to learn language for database development. You’ll need to have your site hosted on a server with Cold Fusion extensions installed in order for your CFML (Cold Fusion Mark-up Language) code to work. Cold Fusion server extensions are also available for the Solaris OS (a Unix variant) which runs on expensive Sun servers. Appearently Cold Fusion 4.5 also works on Linux.
Active Server Pages – ASP is very similar to PHP. ASP pages can be written using VBScript, JavaScript, Microsoft’s JScript, or any other scripting language, providing the scripting engine for that language is installed. Make sure your server has ASP, a.k.a. Active Server Pages enabled and that they allow you to actually run them, as some webhosting companies might charge extra or restrict their usage. Also find out the type of connection you will be using (DSN, DSN-less, OleDB)and what the backend is (MS SQL Server, Oracle, Access).
4.) Links 2.0 may be all you need
Links 2.0 is a set of highly-customizable PERL scripts that allow you to maintain a Yahoo style directory. It allows you to add/delete/edit/approve sites via a web interface, add/create categories and sub-categories, and more.
The script is free for non-commercial use, and $150 for commercial use. An SQL version of the script is also available for $450 for larger directories.
5.) Resources
To learn more about Internet databases, brose through some of these sites:
WebMonkey – Several excellent tutorials about PHP/mySQL, and Cold Fusion.
PhP.net – A complete reference to PHP.
15Seconds – All about ASP.
DevShed – An excellent site with information about Python, mySQL, PHP, Zope and other programming languages.
Matt is the co-founder of SitePoint, 99designs and Flippa. He lives in Vancouver, Canada.