I'm trying to make some classifieds website. I've found some open source classifieds project: osclass.
So I'm about to design the database structure with reference to osclass. osclass's database structure is designed like this:
The category items data table has been divided into 7 small data tables like :
oc_t_item: Stores some base item information.
oc_t_item_comment: Stores the comment for item.
oc_t_item_description: Stores title, content for the item.
oc_t_item_location: Store the location information for the item.
oc_t_item_meta: Store some extra meta information for the item.
oc_t_item_resource: Store the image resources information for the item.
But I don't think this would be wise movement though it makes the logic and structure clear. If we'd like to retrieve some information about some category item, we'd have to do so much join operations between these data tables, which would result in a great performance penalty. So, what is the basic principles and best practices to split some large data table into some small data tables?