Recommended MySQL data model for similar class objects
===

We will be creating a MySQL database to reflect the following PHP classes:

 - Content
 - Article extends Content
 - Post extends Content
 - ...

There will be models associated with Content, like Comment, Ignore etc..

The question here is which data model to use.

1) One table per model

2) One large content table (with all class properties as columns), plus single tables for the other models. I believe it's called single table inheritance.

3) A large content table with the common fields, or only the fields we commonly search on (indexes), plus a large content-data table, with the rest of the properties.

4) Another way?

We want to be able to query against the Content, and get recent, location-based or somehow filtered content, regardless of which content type (subclass) it is. Therefore solution 1 is probably out of the question.

This system should be quick and scalable. What is the best way to go about this problem?
