Как правильно связать таблицы SQLite?
Создаю интернет-магазин. Есть таблица с размерами, где указана подробная информация о размере и есть таблица с футболками. У каждой футболки должны быть все размеры и их наличие. Если просто для таблицы Футболки создать столбец размеры, то придется каждый раз создавать новую футболку и заново прописывать характеристики размера.
Не понимаю как сделать так, чтобы к одной конкретной футболке присваивались все размеры, к каждому из которых можно присваивать наличие.
Образно это должно выглядить вот так:
| ID | Наименование | Цена | Размеры | Номер размера (Европа) | Номер размера (Китай) | Наличие |
|---|---|---|---|---|---|---|
| 1 | Футболка1 | 1000 | XXS | 40 | 30 | 10 |
| 1 | Футболка1 | 1000 | XS | 42 | 35 | 11 |
| 1 | Футболка1 | 1000 | S | 44 | 40 | 24 |
| 1 | Футболка1 | 1000 | M | 46 | 45 | 55 |
| 1 | Футболка1 | 1000 | L | 48 | 50 | 67 |
| 2 | Футболка2 | 1200 | XXS | 40 | 30 | 88 |
| 2 | Футболка2 | 1200 | XS | 42 | 35 | 1 |
| 2 | Футболка2 | 1200 | S | 44 | 40 | 0 |
| 2 | Футболка2 | 1200 | M | 46 | 45 | 0 |
| 2 | Футболка2 | 1200 | L | 48 | 50 | 15 |
Ответы (1 шт):
Автор решения: niz_sh
→ Ссылка
Основные таблицы:
Футболка(ID,Наименование)ТипРазмеры(ID,Размер,Европа_размер, Китай_размер)
Вам необходимо ещё одну таблицу создать:
Товары(ID, Футболка_ID, Размер_ID, Цена, Количество)
Теперь можно получить результат с таким запросом:
select
р.ID
, ф.Наименование `Наименование`
, р.Цена
, тип.Размер as `Размеры
, тип.Европа_размер as `Номер размера (Европа)`
, тип.Китай_размер as `Номер размера (Китай)`
, р.Количество as `Наличие`
from Toвары р
JOIN Футболка ф on ф.ID = р.Футболка_ID
JOIN ТипРазмеры тип on тип.ID = р.Размер_ID
Order by р.Футболка_ID