Как реализовать таблицу базы данных (ER), в которой значения внешнего ключа зависят от другого внешнего ключа в той же таблице? (Django, электронная коммерция)

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

Для модели/таблицы ProductVariations я хотел бы иметь внешний ключ для Options (который будет представлять что-то вроде размера), а затем, основываясь на этом внешнем ключе, я хотел бы иметь другой внешний ключ для OptionValues (например, small). Возможные значения для последнего внешнего ключа должны быть ограничены первым внешним ключом. Более конкретно, я не хочу, чтобы в выпадающем списке на сайте администратора отображались "small, red, blue, 32, 33, large", когда предыдущий внешний ключ был "size". В этом случае я бы хотел, чтобы он отображал только "small, large".

Как мне это сделать? Я буду благодарен за любые идеи, касающиеся Django или проектирования баз данных в целом.

Изображение моей ER-модели. Я мог бы также рассмотреть возможность добавления отношения Product к Option, что означало бы, что теперь значение option_value зависит от option, который зависит от product.

Вернуться на верх