我正在创建用于存储历史股票数据的数据库架构。我目前有一个架构,如下所示。
我的要求是存储多个股票代码的“柱形数据”(日期,开盘价,高,低,收盘量)。每个交易品种也可能有多个时间范围(例如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);
这意味着我的查询当前类似于:查找给定符号/时间框架的时间框架ID,然后在时间框架ID匹配的OHLCV表上进行选择。
好的,从积极的方面来说,您有很好的意识要先征求意见。这使您领先90%的不熟悉数据库设计的人。
timeframeID
symbolID
TEXT
open
high
low
close
INTEGER
对于所有这些似乎都不太“具有建设性”,我深表歉意,尤其是因为我现在太困了,无法提出一种更有用的替代方法。我希望以上内容足以让您踏上前进的道路。