gpt4 book ai didi

sql-server - 三向参照完整性-SQL Server 2008

转载 作者:行者123 更新时间:2023-12-02 04:09:16 24 4
gpt4 key购买 nike

我正在使用SQL Server 2008建立数据库来存储在多个市场上交易的证券的价格。

对于给定的市场,所有证券都具有相同的假期日历。但是,假期日历因市场而异。

我想要以下四个表:Market,GoodBusinessDay,Security和SecurityPriceHistory,并且我要强制执行SecurityPriceHistory在交易市场关闭时没有营业日的行。

表中的字段如下:

市场:MarketID(PK),市场名称

GoodBusinessDay:MarketID(FK),
SettlementDate(对是PK)

安全性:SecurityID(PK),MarketID
(FK),安全名称

SecurityPriceHistory:这是
问题-我的偏好是
SecurityID,SettlementDate,
证券价格

如何以这种方式定义表并保证在SecurityPriceHistory中的每一行中,GoodBusinessDay中都有对应的行?

如果我在SecurityPriceHistory中添加了MarketID列。我可以看到如何使用两个外键(一个指向安全性,另一个指向GoodBusinessDay)来做到这一点,但这似乎并不是正确的方法。

最佳答案

这个模型应该做。 Market和BusinessDay之间的关系正在确定,也就是说,工作日不在其所属市场范围之外。

同样,BusinessDay和SecurityPriceHistory之间的关系也可以识别,因为Security和SecurityPriceHistory之间的关系也可以识别。

这意味着SecurityPriceHistory的主键是复合键:security_id,market_id和结算日期。

这将强制执行以下约束:在给定的市场/工作日,每个证券在SecurityPriceHistory中的行数不得超过一排。但是,尽管该证券与特定市场有关系,但它确实允许同一证券在多个市场中进行交易:要限制该证券,必须确定市场与证券之间的关系,因此:

关于sql-server - 三向参照完整性-SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6062288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com