Создать БД для пересечения значений таблицы
Есть csv таблица в первом столбце даты, в первой строке продукты, нужно получать значения цены из пересечения строки с датой и столбца с номером продукта. Как реализовать такую БД? Просмотрел целый курс по базам данных MySql, так и не понял...
Не создавать же для каждого продукта отдельный столбец, а если их тысячи?
Ответы (1 шт):
Автор решения: Slava Rozhnev
→ Ссылка
Вы можете использовать такую схему:
create table products (
id int primary key auto_increment,
name varchar(255)
);
create table prices (
price_date date,
product_id int,
price decimal(9,2)
);
Нижу прмер содержимого:
+============+============+=======+
| price_date | product_id | price |
+============+============+=======+
| 2020-11-13 | 8 | 33.34 |
+------------+------------+-------+
| 2020-11-14 | 6 | 72.47 |
+------------+------------+-------+
| 2020-11-15 | 11 | 76.97 |
+------------+------------+-------+
| 2020-11-16 | 10 | 10.19 |
+------------+------------+-------+
| 2020-11-17 | 10 | 0.95 |
+------------+------------+-------+
| 2020-11-18 | 6 | 26.36 |
+------------+------------+-------+
| 2020-11-19 | 10 | 92.26 |
+------------+------------+-------+
| 2020-11-20 | 9 | 15.65 |
+------------+------------+-------+
Запрос для выбоки цены:
select price where price_date = '2020-11-17' and product_id = 10;
Протестировать схему на SQLize.online