Es ist nicht wirklich üblich, nein. Es gibt keine native Möglichkeit, einen Primärschlüssel zu teilen. Was ich in Ihrer Situation tun könnte, ist Folgendes:
product_table
id
name
category
general_fields...
product_type1_table:
id
product_id
product_type1_fields...
product_type2_table:
id
product_id
product_type2_fields...
product_to_category_table:
product_id
category_id
Das heißt, es gibt eine Hauptprodukttabelle, die Einträge für alle Produkte und die Felder hat, die zwischen den Typen verallgemeinern, und typspezifische Tabellen mit Fremdschlüsseln in der Hauptprodukttabelle, die die typspezifischen Daten enthalten.