2015-03-23 4 views
0

У меня есть эта таблица одежда, которая состоит из панелей, каждая панель может быть окрашена в набор из 26 цветов по умолчанию. Проблема в том, что каждый предмет одежды может быть создан с использованием ткани, и каждая ткань позволяет использовать один или несколько дополнительных цветов. Я создал диаграмму draw.io, чтобы помочь в понимании моей проблемы.Дополнительная таблица базы данных

https://drive.google.com/file/d/0BwDqLSd0_WeocU5ndmNqZmc2MTQ/view?usp=sharing

В основном, одежды имеют ткани, который имеет набор fabricColours. одежды также GarmentColours которые коллекция Цвета и FabricColours, но я не уверен в том, как определить отношения. В моем дизайне GarmentColours имеют 2 дополнительных внешних ключа: FabricColourId и ColourId. Я думаю, что это можно сделать лучше, но я не уверен, как это сделать.

С кем-нибудь сталкивались с подобной проблемой раньше? Если да, то как вы его решили?

Update 1

Вот PNG документа, только в случае, если вы не можете открыть его :)

enter image description here

+0

Не могли бы вы опубликовать png? –

+0

уверен, я обновил свой вопрос – r3plica

+0

Почему FabricColours не ссылается на цвета? –

ответ

0

Когда я изучал дизайн базы данных около 30 лет назад мы используется для вызова этой трапеции. То есть одна таблица относится к двум другим. В дизайне класса это класс ассоциации. Такой подход общепринят. По соображениям производительности и применения некоторых ограничений вы можете иметь список ограниченных связей, например. Garments. Это будет какая-то колонна вроде Colour1, Colour2. Как вы можете видеть, это резко сократит число возможных отношений.

Смежные вопросы