我正在使用SQL Server 2008构建一个数据库来存储在多个市场上交易的证券价格。
对于给定的市场,所有证券都有相同的假期日历。但是,假期日历因市场而异。
我想要以下四个表:Market、GoodBusinessDay、Security和SecurityPriceHistory,并且我想强制SecurityPriceHistory在交易证券的市场关闭时没有工作日的行。
表中的字段如下:
市场:MarketID (PK)、MarketName
GoodBusinessDay: MarketID (FK), SettlementDate (这对是PK)
安全性:SecurityID (PK)、MarketID (FK)、SecurityName
SecurityPriceHistory:这是个问题 - 我的偏好是 SecurityID、SettlementDate、SecurityPrice
如何以这种方式定义表并保证SecurityPriceHistory中的每一行, GoodBusinessDay中都有相应的行?
如果我将MarketID列添加到SecurityPriceHistory。我可以看到如何使用两个外键(一个指向Security,一个指向GoodBusinessDay)来执行此操作,但这似乎不是正确的方法。