This is an issue that database designers encounter all the time. What you are trying to do is very similar to what they are trying to do - i.e. design the fastest, most logical indexing protocol to retrieve records (your photos)
ad hoc. First, remember that the problem is not efficient record SAVING - it is efficient record RETRIEVAL. I think you understand this problem implicitly, at least.
The problem is,
in order to do what you want to do you have to give a fully-descriptive name to EVERY photo file before you save it, and you have to have a common naming convention.
Each record in a database has a unique identifier, and each may also have "group" identifiers that logically link records together. To retrieve information from a database one creates a "query" (or uses a template) that tells the program to retrieve all records that have certain identifiers. Those identifiers would be in your file naming convention.
Databases are designed to suit the needs of the users. While there are certain common structural characteristics, there is no one structure that is universally suitable.
To structure your folders for efficient photo retrieval:
- Decide how you perform searches for specific files or "records" (photos)
- There will be more than one - rank them by importance or frequency
- Date? Subject? Equipment? Category?
- If you are a professional, by job or client?
- Understand how your brain is structured (this is a real consideration)
- Do you principally group your experiences and thoughts by time or subject, to keep it simple
- In many ways your photos are records of experiences - how do your categorize your experiences?
- Structure your folders from the broadest category to the most granular
- Year/Month/Day/Subject is obvious
- Client/Job/Subject is common for professionals
- Subject/Year/Date~time is another - I use this one
- Vacations
- Flowers
- Landscapes
- Vacations
- Missouri
- Ozarks
- Irish Wilderness
- 2004
- 2007
- (I made a new sub-folder and moved the files after the 2nd trip)
- Cityscapes
- Friends
- Events
- etc.
The problem comes in when you want to search thousands of records for all photos of flowers, for instance, regardless of how you originally structured your retrieval convention. You may have taken a photo of an interesting flower on a vacation in 2004. You can only really do this if each image you save has "tags" that a search tool could use to call every record that has that tag and present them to you in an array. Flickr uses this technique to let you search their database of records. It is analogous to structuring the records in a database with identifiers. You can only get them out if you put them in with all the tags.
You COULD just save every file with its image number as assigned by the camera. Assuming you never restart the numbers, each record then has a unique numeric identifier. You would use a database manager that knows a particular record identifier has "tags" assigned to it - and you would constantly tell the database manager all the tags that are assigned to each file you save as you save them. You would then ask the database manager to go retrieve every file that has a tag assigned to it - or a combination of tags. I'd bet that none of us does this - but it is the right way to save our files for efficient retrieval.
Since you likely do not have a database manager that can associate the tags with the file name,
assuming you have given each file a fully-descriptive name, you would do a File Search for all files that have the target in the file name.
For instance, in a folder structure Vacations/2005/April/Cayman, you might have a file named flower.Hibiscus001.PEF. Clearly, you can look at ALL the pictures you took on the Cayman Trip by just going to the folder. But you can only call the flower pictures you took on that trip if you remember when you took them.
Or you might have a Flowers folder, and a file named flower.hibiscus001.vacation.2005.cayman.PEF. You can see all your flower pictures easily, but you might have divided up the other vacation pictures into other subject folders - you can't easily recall a complete record of that trip.
You would then do a File Search *.*.*.*.cayman.* and cayman would always have to be the fifth word in the string. If you did that, you could retrieve every picture you took on the cayman trip.
Unfortunately, to make this work, you have to add the tags to all your images as they go into your folders - and you already have 20,000 records saved.
I organized my folders so I could get what I wanted MOST of the time. I usually want to see everything that happened on a vacation that has my family in it, so they stay in the vacations folder, or find a photo of a friend. Landscapes are not an issue, because they are not spread out across lots of folders.
I chose to have a multi-layered folder tree and shorter file names, because it is easier to rename the files. You could go the other way, as you desire.
A few times I have just had to spend an afternoon browsing folders in Adobe Photoshop Album