Архитектура базы данных для товаров у который цена различается в зависимости от цвета

Использую python 3.9, Django 3 и MySQL 8. Подскажите пожалуйста как можно реализовать таблицы в БД в такой ситуации (и как потом выводить только один из товаров на странице каталога товаров):

Допустим у меня есть товар "Коляска №1". Она может иметь три цвета: белый, красный, синий.
Коляска № 1 белая - 20 000 р.
Коляска № 1 красная - 21 000 р.
Коляска № 1 синяя - 19500 р.

Также есть товар Коляска № 2. Она также может иметь несколько цветов: белый, оранжевый, коричневый.
Коляска № 2 белая - 11 000 р.
Коляска № 2 оранжевая - 10 000 р.
Коляска № 2 коричневая - 11500 р.

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

Заранее спасибо, тем кто откликнется!


Ответы (1 шт):

Автор решения: Alexey Lakris
create table colors(
  id
  name varchar(255)
);

create table products(
  id
  name varchar(255),
  description text
);

create table product_variants (
  id
  product_id
  color_id 
  default_variant bool,
  price numeric(8,2)
);

я бы сделал примерно так.

→ Ссылка