Схема базы данных для организации исторических данных о запасах
Я создаю схему базы данных для хранения исторических данных о запасах. В настоящее время у меня есть схема, как показано ниже.
Мои требования - хранить «данные бара» (дата, открытый, высокий, низкий, закрытый объем) для нескольких биржевых символов. Каждый символ может также иметь несколько таймфреймов (например, бары Google Weekly и бары Google Daily).
Моя текущая схема помещает большую часть данных в таблицу OHLCV. Я далеко не эксперт по базам данных, и мне любопытно, если это слишком наивно. Конструктивный вклад очень приветствуется.
CREATE TABLE Exchange (exchange TEXT UNIQUE NOT NULL);
CREATE TABLE Symbol (symbol TEXT UNIQUE NOT NULL, exchangeID INTEGER NOT NULL);
CREATE TABLE Timeframe (timeframe TEXT NOT NULL, symbolID INTEGER NOT NULL);
CREATE TABLE OHLCV (date TEXT NOT NULL CHECK (date LIKE '____-__-__ __:__:__'),
open REAL NOT NULL,
high REAL NOT NULL,
low REAL NOT NULL,
close REAL NOT NULL,
volume INTEGER NOT NULL,
timeframeID INTEGER NOT NULL);
Это означает, что мои запросы в настоящее время идут примерно так: найдите timeframeID для данного символа / таймфрейма, затем сделайте выборку в таблице OHLCV, где timeframeID совпадает.