How to normalize a table with common and non-common fields?
Your case looks like an instance of class/subclass (or, if you prefer, type/subtype).  You can find many answers like this one in SO or here in DBA.