Multi-variance products
If you don't want to go for a full EAV solution, you could try something like this:


product_base
------------
  id
  product_group_id
  (other fields)


product_option_types
--------------------
  id
  description

product_options
---------------
  id
  product_id (fk to product_base.id)
  product_option_type_id (fk to product_option_types.id)
  description


This will let you have data that looks like this:


product_base
ID  |  name | product_group_id
------------|-----------------
1   |  Foo  | 1

product_option_types
ID  |  description
------------------
1   |  colour
2   |  size
3   |  model
4   |  sublabel

product_options
ID  | product_id | product_option_type_id  | description
---------------------------------------------------------
1   |  1         | 1                       | red
2   |  1         | 1                       | green
3   |  1         | 2                       | small
4   |  1         | 2                       | large
5   |  1         | 3                       | special edition
6   |  1         | 3                       | standard edition
7   |  1         | 4                       | Bar



So you end up with a "Foo" product that has 2 colours (red and green), two sizes (small and large), two models (standard and special) and a sublabel (Bar).

Note that in product_options, you'll need a unique constraint on (product_id, product_option_type_id, description).

you could try to go further and attempt to normalize the values of product_options.description to a separate table, but that might be more complicated than it's worth.