From my experience what you are looking for (in the sake of simplicity) is a multi-table relational structure. Based on the information you gave I have worked up a draft below
Product Table
Used to maintain your product list
[product]
- id (BIGINT, AUTO_INC, PK, NOT NULL)
- title (VARCHAR(255), INDEX, NOT NULL)
Product Properties Table
Everything unique about your properties that they may or may not have in common (ie. size color, left/right, capacity, etc.)
[product_property]
- id (INT, AUTO_INC, PK, NOT NULL)
- title (VARCHAR(255), INDEX, NOT NULL)
Product Property Values Table
This table is where you tell it what product's property has what value (ie. this product 10234-3 is black in color, and has a capacity of 25). I used the BLOB type for value because the question is open eneded. Is this a quantity number, or a three page text description. You can adjust as necissary to fit your needs. You can also use this table to handle dependency it does not need to be unique combination of product_id and property_id because you may have one or more colors, or multiple groups it can belong to, etc.
[product_property_value]
- product_id (BIGINT, FK => product.id, NOT NULL )
- property_id (INT, FK => product_property.id, NOT NULL)
- value (BLOB)
If you have any questions or need clarification I will help where i can. Its pretty basic and should fit your needs.