Kimball Modelling One Column Linking to Many Dimensions

We are conducting Quality inspections, Appraisals, and Ratings on furniture. Many different types of furniture exist, chairs (1), shelves (2), couches (3), table (4). The respective DimProductType is 1,2,3,4. We actually have 100+ product types.

If measuring facts for brown tables, or chairs with 6 six legs, or Couches with polyester fabric type, how would I model the Fact table?

In FactInspection, there are two proposed methods. What is best Kimball design for this?

DimProductTypeProductId linking to many dimension tables below in one column, Or have denormalized columns for each furniture with nulls (with 100+ product types)

What is the official Kimball way to model this?

Method 1:

(this will join, on DimProductTypeProductId Composite)  create table dbo.FactInspection (     FactInspectionId int primary key identity(1,1)     DimInspectionDate int not null,     ValueAmount numeric(10,2)not null,     StarRatingOutof10 int not null,     DimProductTypeProductId null ) 

Method 2:

create table dbo.FactInspection (     FactInspectionId int primary key identity(1,1)     DimInspectionDate int not null,     ValueAmount numeric(10,2) not null,     StarRatingOutof10 int not null,     DimChairId int null,     DimShelfId int null,     DimCouchId int null,     etc..  ) 

Dimension Tables:

create table dbo.DimChair (     DimChairId int primary key identity(1,1),     ProductType int,     ChairNaturalKey int,     ProductTypeAndNaturalKey as (ProductType + '|' ChairNaturalKey) persisted     Color varchar(55),     LegNumber int )  create table dbo.DimShelf (     DimShelfId int primary key identity(1,1),     ProductType int,     ShelfNaturalKey int,     ProductTypeAndNaturalKey as (ProductType + '|' ShelfNaturalKey ) persisted     Length float,     Height float,     NumberofShelves varchar(55) )  create table dbo.DimCouch (     DimCouchId int primary key identity(1,1),     ProductType int,     CouchNaturalKey int,     ProductTypeAndNaturalKey as (ProductType + '|' CouchNaturalKey) persisted     FabricType varchar(255),     NumberofSeats int )