This article is the third in the series I have started regarding publishing pictures online. So far, we have talked about two fundamental questions to be asked before publishing any pictures online, and last article dealt with the first and easiest option namely, using an online picture sharing library. In this article I will discuss publishing your picture galleries on your own website.
What does it mean to host your own picture gallery?
The simple definition is that you have paid for your own website name and space and therefore you own your own space on the internet. In addition, you are using the space you have bought for publishing your pictures. There you have it: you’re hosting your own picture galleries. This is different than using Flickr or Photobucket or other online sharing library because these libraries own and control the web space. Ok, this is very simple, I admit it, but once you have your name and space paid for how do you go about adding your own pictures to your website? I am not asking about what HTML code you have to write, or what colors you have to use, but rather what solution are you choosing?
Only TWO solutions
That’s it really. There are only two basic solutions: non-database driven and database driven. However, there are many implementations of these two solutions.
There are major and fundamental differences between the two solutions so a better understanding of each solution is needed before we can pass judgment.
- No database – this solution has to do with creating the HTML code either by hand or by using some automated software that generates each page in the photo gallery. In other words, you pick the pictures, you choose the order of the pictures and you create each page for each picture. Once it’s done you cannot add or delete any pictures from your gallery without rewriting the code for the respective pages. Simply put, the code behind the photo gallery is static, meaning that once it has been created it has to be changed by the same process that created it.
- Database driven – this solution uses a separate repository for information about your pictures (metadata). This information contains data like: physical location of the images, title, subtitle, date and other data that maybe useful for your needs. Then, the user interface is the front that accesses this data present in the database. Essentially, this is a two tier (two layer) solution: one for the user and one for the data (images). Why all this complication you might ask? The key to the database driven solution for a photo gallery, is that if you add or delete an image, you only add or delete the entry for that image in the database, without touching the user interface pages. In other words, the user interface is dynamic which means that the contents shown change automatically as the contents of the database change.
…but MANY implementations:
I believe it is important to make a distinction between solutions and implementations, because many people confuse the two. The solutions as I have said are only two, but they can be implemented using Web Albmum Generator, Extreme Thumbnail Generator, HTML, PHP, AJAX, JAVA, Java Script, ASP for the user interface and MySQL, Postgres, Oracle, MS SQL for the database. Again, only two solutions, but many implementations. So, if you’re thinking I’m going to publish my pictures with PHP, you’re talking about an implementation and not a solution. I plan to write about a few of the different implementations in my future articles, but for now I want to keep the focus on the two solutions presented.
The “No Database Solution” analysis
- A lot simpler to implement, especially if a gallery generator software is being used. The only thought you have to put in is how to name your gallery and which folder to place it in.
- Pages load faster because the code is static (usually HTML).
- Pages are easily indexed and searched by search engines
- Not very flexible. The galleries published without a database cannot be searched or tagged.
- A picture can only go into one gallery, unless you purposely copy the same image as part of multiple galleries. This is a problem if you want your users to search through your images.
- Any changes like adding, or deleting pictures in a picture gallery has to be done manually
Is this solution for you?
If all you want is to publish some pictures online, and you don’t care if your users are able to search through your pictures, then this is for you. This solution is simple and fast. However, if it is really important for you to be able to add tags to each image and you want your users to search your images using those tags, then this solution is not for you. You must go with a database approach.
The “Database driven solution” analysis
- Completely flexible. This solution is as flexible as you want it to be.
- All images can be searched and indexed based on the image metadata you choose to enter in the database. You can enter tags, EXIF data, title…pretty much anything you want and then your users can search through all the images based on all this metadata. This is very powerful !
- Any addition and deletion of images can be done by simply adding, deleting metadata about the image to and from the database. The user interface will not have to change. This can save a lot of time.
- It is much harder to implement than the “No Database solution”. Using a database adds quite a bit of technical complexity to your website. Your hosting company might make this easier and provide a script for installing an implementation of this solution. In this case it may be much easier.
- It is time consuming to enter all the image metadata into the database. You have to do it for every image.
- Lots of traffic will punish greatly a poorly designed database driven solution. I do not have to space in this article to address this issue…but I had to mention it. Database and site optimization will add a lot of technical complexity to your site.
Is this solution for you?
If it is crucial that you are able to tag individual images so that your users would be able to search through your images using these tags, then this is the only solution available. However, if the search capability is not crucial to your needs, then think twice about using a database solution even though you might have found an implementation that promises to be very easy to install and use.
Tell me about your experience.
I am really interested in what methods you’re using for publishing your pictures to the web. Please add a comment and share your experience.