• One of the problems with bundling different entity types into one table is that you may have to make some compromises with integrity constraints - or incur a certain amount of additional complexity to enforce those constraints.

    For example, in your original model the Type 1 items have attributes D,E,F,G. If you combine all types into one table and make D,E,F,G nullable columns then you could have Type 1 attributes with missing values for one or more of those attributes. That may not be what you intended. You could solve this by adding additional CHECK constraints to ensure only permitted combinations of attribute values get into your table. That implies some overhead when you insert and update rows.

    A possibly harder problem is what to do if FOREIGN KEY constraints needed to reference those individual type tables, or if UNIQUE or FOREIGN KEY constraints applied to an attribute for one item type but not to the same attribute for another item type. If you need constraints of that kind then I suggest you keep the different types separated into individual tables.