I'm in the process of designing a database and I'm having second thoughts about my initial design decisions...
Product types are as follows... Models, parts, replacement part kits and options.
Option A (first design): I planned on having separate tables for the above product types. I'd say about 75% of the fields would be the same in each table.
I created each product type as separate tables because of the associations I need to create between them. For instance, a Model can have many options and a option can have many models. An option can also have many parts and a part can have many options... and so on...
Option B: Instead of having separate tables I could create a table called Product that encompasses model, part, replacement part kits and options. I could have one field called type to differentiate between model, options, etc. I suppose a down side is several fields would never be used (left null) for certain product types. I'm guessing this is where "not best practices" would come into play..
Option B would greatly reduce the complexity of the db design. I also wouldn't have to worry about referencing a bunch of tables when pulling out data for queries...