Storing metadata of various data types in a MySQL database
What I have done in the past is to use something like this:

1)  Each document has a logical type associated with it.

2)  Set up tables for metadata for each logical type.  Each row can store all metadata associated with the document.

The other approach is that of key-value-modelling which can actually be ok or not depending on what you are doing with it.  In this case you have a metadata table which stores all metadata, one value per record, for all documents.  This works best if you find a reasonable way to aggregate the data in result sets, and if you aren't doing complex searches across multiple metadata fields.