【发布时间】:2010-12-04 03:50:45
【问题描述】:
我正在创建一个用于存储历史股票数据的数据库架构。我目前有一个如下所示的架构。
我的要求是存储多个股票代码的“柱数据”(日期、开盘价、最高价、最低价、收盘量)。每个交易品种也可能有多个时间范围(例如 Google 每周柱和 Google 每日柱)。
我当前的架构将大部分数据放在 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 表上进行选择。
【问题讨论】:
-
不太确定这里的问题是什么?代码审查?
-
问题是:“当您考虑大型数据集时,这是一个合理的设计还是应该重新考虑?”
-
您能否为此提供架构图。你用的是什么数据库。我也有类似的情况。
-
你能分享一下你想出的最终架构吗?
-
quant.stackexchange上有非常丰富的讨论:quant.stackexchange.com/questions/29572/…我真的很推荐。