I'm having trouble thinking of a good design for this database I need to make.

The thing that makes it complicated is that there will be X types of content, each type requiring different parameters, but all types being equal with regards to the other tables.

The only solutions I can think of would be to make a separate table for each content type. To get the information onto the page I would have to get the table name from a related table and then run another query to get the actual content.

I don't like that solution.

I could also make a single table with a bunch of unspecific fields that could be used for different things depending on which type is being used. I would then have to differentiate within the code what to use what for.

That solution seems better to me, the only thing I don't like about it is that it's making code do things that I wish the database was doing, and that the form fields wouldn't be specific to what kind of data they'd need to hold. They'd basically all have to be varchars no matter what.

This is in MySQL by the way.