Robin, thanks for the useful reply.
I agree using the FITS file header to store as much relevant information as possible is a good idea. My current thinking is the database would be a MySQL database that holds the FITS files in one of its fields. That way the data storage can benefit from the robustness of a relational database, while also enabling fast searches on data to make creating lists of spectra meeting user entered criteria nice and easy.
There would of course also need to be the ability for users to download spectra and to display them on screen.