Django orm. Помогите разобраться с дизайном базы данных
Помогите понять, как работает бд на примере коинмаркеткэпа. Есть, например, 3000 монет, их цена обновляется каждые 5 минут. Куда накапливать историю цен каждой монеты? Для каждой монеты сделать отдельную таблицу, связать со списком всех монет (fk)? Если так, то как тогда создать 3000 таблиц?
Создаете две таблицы.
1. Таблица монет "Coins":
id - уникальный номер монеты
name - наименование
2. Таблица истории цен на монеты "CoinsPrice":
id - уникальный номер записи
id_coin - уникальный номер монеты
price - цена на монету
dt_price - дата цены
CREATE TABLE Coins
(
id INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(20) NOT NULL,
);
CREATE TABLE CoinsPrice
(
id INT PRIMARY KEY AUTO_INCREMENT,
id_coin INT,
dt_price Date,
FOREIGN KEY (id_coin) REFERENCES Coins (id)
);
"Coins" - справочник монет, "CoinsPrice" - пишите все изменения.
Посмотреть историю изменения цены на монету по типу такого:
SELECT c.name as [Монета], p.price as [Цена], p.dt_price as [Дата]
FROM Coins c LEFT JOIN CoinsPrice p ON c.id = p.id_coin
WHERE c.id = %id_монеты%