|Syntactic Confectionery Delight|
Your project sounds quite interesting, and the database structure you have listed looks like a very good start. I would suggest adding a field for the filename location as well, which should be especially helpful If you're building dynamic pages. While taking a flat-file approach may get you "off the ground" quickly, at some point your image collection will most likely benefit from a proper db backend, IMHO.
Like dropping new images into a directory and letting the database be automatically updated? Some information would be easy to auto-update, like ID Number, Filename, and Filename Location, then maybe an email reminder that you have new images to attend to, which could offer a link to a simple web form showing only the new pictures with input boxes for the Description, Location, etc... After you've taken care of that work, the images will be viewable in the wild.
Another point of automation is with page generation. I would suggest putting as much logic as possible into the database structure, so the CGI that builds the pages has less work to do. Putting the 'brains' in the database also allows you to easily modify the storage structure without worrying too much about your scripts. Consider the difference between a script that queries your database for hard coded field names, and another which first queries for all field names (and virtually any other structual information) and works from there, for example.
A great source of information for this type of stuff is the book "MySQL and Perl for the Web". Authored by the same guy who wrote other great MySQL books!
Not sure how easy I could back it up...
Very easy with MySQL... A quick and dirty script to backup your individual databases is here.
I am very keen to know how this project progresses. Cheers.