协助设计数据库关系?
Assistance with designing database relationships?
我正在编写一个跟踪股票的应用程序,该股票在第一天 运行 然后在第二天也跟踪,我正在尝试弄清楚如何设计数据库关系,我还没有几年内没有这样做,所以我向一些数据库忍者寻求帮助
同一代码将有多个第 1 天和第 2 天的条目,目前主键在代码上
非常感谢任何帮助
数据库图
一种方法是使用一个 Stock
table 存储有关股票的一般信息,另一个 table StockPrices
存储每日快照的股票。
Stock
的主键将是 Ticker
,因为它唯一标识股票并且 short/easily 可以理解。
StockPrices
的主键将是 (Ticker,Date)
。 table 上的列 Ticker
与 Stock
的主键有外键关系。
两天之间的任何比较都可以通过一个简单的查询来完成:
SELECT *
FROM Stock s
INNER JOIN StockPrices spDay1 ON s.ticker = spDay1.ticker AND spDay1.date = [first day you want to compare to here]
INNER JOIN StockPrices spDay2 ON s.ticker = spDay2.ticker AND spDay2.date = DATEADD(dd, 1, spDay1.date)
我正在编写一个跟踪股票的应用程序,该股票在第一天 运行 然后在第二天也跟踪,我正在尝试弄清楚如何设计数据库关系,我还没有几年内没有这样做,所以我向一些数据库忍者寻求帮助
同一代码将有多个第 1 天和第 2 天的条目,目前主键在代码上
非常感谢任何帮助
数据库图
一种方法是使用一个 Stock
table 存储有关股票的一般信息,另一个 table StockPrices
存储每日快照的股票。
Stock
的主键将是 Ticker
,因为它唯一标识股票并且 short/easily 可以理解。
StockPrices
的主键将是 (Ticker,Date)
。 table 上的列 Ticker
与 Stock
的主键有外键关系。
两天之间的任何比较都可以通过一个简单的查询来完成:
SELECT *
FROM Stock s
INNER JOIN StockPrices spDay1 ON s.ticker = spDay1.ticker AND spDay1.date = [first day you want to compare to here]
INNER JOIN StockPrices spDay2 ON s.ticker = spDay2.ticker AND spDay2.date = DATEADD(dd, 1, spDay1.date)