Схема базы данных для организации исторических данных о запасах

Я создаю схему базы данных для хранения исторических данных о запасах. В настоящее время у меня есть схема, как показано ниже.

Мои требования - хранить «данные бара» (дата, открытый, высокий, низкий, закрытый объем) для нескольких биржевых символов. Каждый символ может также иметь несколько таймфреймов (например, бары 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 совпадает.

Ответы на вопрос(3)

Ваш ответ на вопрос