過去の株式データを格納するためのデータベース スキーマを作成しています。私は現在、以下に示すようなスキーマを持っています。
私の要件は、複数の銘柄記号の「足データ」(日付、始値、高値、安値、終値) を保存することです。各シンボルには複数の時間枠がある場合もあります (例: 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 を検索し、timeframeID が一致する OHLCV テーブルで選択を行います。