"But Lograh," you say, "there are already plenty of programs that do that!" You then procede to list and link to a few.
I have some unique requirements that reduce this ample list of programs down to zero (from what I've seen).
1) It must be able to allow me to give photos keywords. Beyond categorizing them, I want to have kewords also. So a picture can be in the categories 'rivers', 'sacramento', and 'art' (notice multiple categories possible), and yet it can also have the keywords 'heavilly altered', 'multi-season', 'fooness' (keywords can be phrases also). The only differance between categories and keywords will be in the visual organizational structure. I'll expect that categories (and sub-categories) will act as a sort of tree-structured heirarchy for display and storage, while keywords will be searchable and can relate piccies in entirely different categories.
2) It must be searchable. Search based on category, keyword, date added to collection, any other field I may decide to implement (possible choices would be artist, camera, lens, etc...)
(here is where we start to really kill the currently available programs)
3) it needs to be able to handle a picture file that it cannot understand. I shoot exclusively in raw mode, which produces CRW files unreadable by damn near everything. I can convert these to png or jpg files easilly enough, and adobe can import them and thus output whatever I damn well please. But I want my picture storage program to be able to store the raw files themselves. I don't mind having to give it a jpg version it can referance for thumbnail/preview display purposes, but I'd preferr that not being necessary (even though I will likely do so simply to make my use of the system easier). When it stores this picture, it will note the thumbnail verison, and preview version, and store them along with the CRW file (and all the other informational goodness).
(I haven't yet found one that can do the above, but just to make it more limited)
4) it needs to support backing up everything. I want to be able to tell it "dump to archive" and it will create some archive suitable for burning to CD/DVD (user selectable, of course). I'm not overly picky if this archive is a single compressed file only readable by this system or if it is a OS-compatible directory structure with the files in plain view and their associated info in some text files alongside them. Whatever it takes, just give me something I can treat as a collective chunk and burn to storage media.
and, as a final wish (this one I'd not be at all picky about):
5) it would be nice if there were versions available for Win/Mac/Linux that could all read the same archive formats. Thus I can import/edit pics on the iBook at home, move them to an archive file and incorporate that archive file into a collection on the Win machine here. Export larger archive files from the Win machine and burn to DVD on it's burner. Then import those larger archive files into the Linux machine for later use/editing.
Now, points 1-4 are requirements. If it doesn't meet even one of them, I won't consider using it. I'm not going to store my photos in any system that won't support making backups. I can't store them in it if it won't handle CRW files (even as secondary data to the main picture entry). If I can't search for all piccies with such-and-such info, what's the point of having the database in the first place? And if I can't customize the info to the extent I need, then it is entirely unusable for my purposes.
I am suspecting I'm asking too much from the programming community. I also suspect most programmers these days are hacks and I could probably just write the damn thing myself. I can almost see it as a collection of scripts for apache/mysql/php to handle. I'd just store all the data in the database. I'm not too sure about mysql being able to export select records to an archive file, or it's ability to merge an archive file with an existing database.
Whatever the result, I'm sitting here having to try managing my piccies by hand. Which with roughly 7500 pictures is proving a tad difficult. :)