Не е много често, не. Няма собствен начин за споделяне на първичен ключ. Това, което мога да направя във вашата ситуация, е следното:
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
Това означава, че има една главна продуктова таблица, която има записи за всички продукти и има полета, които обобщават между типовете, и специфични за типа таблици с външни ключове в главната продуктова таблица, които имат специфичните за типа данни.