Таблица: Shirt {shirt_id}
Таблица: ShirtAttributeDefinitions {attribute_id, attribute_description}
Таблица: ShirtAttribute {shirt_id, attribute_id}
таким образом, вы можете продолжать определять новые ShirtAttributes, добавляя записи в таблицу: ShirtAttributeDefinitions.
Пример:
у вас есть две рубашки: {shirt_id: 1}, {shirt_id: 2}
у вас есть пять атрибутов рубашки: {attribute_id: 1, attribute_description: blue}, {attribute_id: 2, attribute_description: small}, {attribute_id: 3, attribute_description: ladies}, {attribute_id: 4, attribute_description: red}, {attribute_id: 5 , attribute_description: men}
Теперь ваша первая рубашка - синяя маленькая женская рубашка, а вторая - красная мужская рубашка. Таким образом, ваша таблица ShirtAttribute будет иметь эти повторы:
{shirt_id: 1, attribute_id: 1}, {shirt_id: 1, attribute_id: 2}, {shirt_id: 1, attribute_id: 3}, {shirt_id: 2, attribute_id: 4}, {shirt_id: 2, attribute_id: 5}
Хотя этот подход работает, лучше всего сделать эти поля атрибутов таблицы Shirt. Таким образом, вы можете убедиться, что рубашка не имеет атрибутов «мужчин» и «дам». Этот метод является лишь грязным подходом, который строго соответствует вашему вопросу.
JRH.