【发布时间】:2011-05-19 17:10:17
【问题描述】:
我正在使用 SQL Server 2008 构建一个数据库来存储在多个市场上交易的证券价格。
对于给定的市场,所有证券都有相同的假期日历。但是,假期日历因市场而异。
我想要以下四个表:Market、GoodBusinessDay、Security 和 SecurityPriceHistory,我想要强制执行 SecurityPriceHistory 在交易证券的市场关闭的工作日内没有行。
表格中的字段如下:
市场:市场 ID (PK)、市场名称
GoodBusinessDay:MarketID (FK), SettlementDate(对是PK)
安全性:SecurityID (PK)、MarketID (FK), 安全名称
SecurityPriceHistory:这是 问题 - 我的偏好是 证券 ID、结算日期、 安全价格
如何以这种方式定义表并保证SecurityPriceHistory 中的每一行,GoodBusinessDay 中都有对应的行?
如果我将 MarketID 列添加到 SecurityPriceHistory。我可以看到如何使用两个外键(一个指向 Security 和一个指向 GoodBusinessDay)来执行此操作,但这似乎不是正确的方法去做吧。
【问题讨论】:
标签: sql-server foreign-key-relationship referential-integrity