gpt4 book ai didi

database-design - 数据库设计 : stock & option trades

转载 作者:行者123 更新时间:2023-12-01 01:19:08 26 4
gpt4 key购买 nike

一个数据库有两张表:一张用于股票(股票),一张用于期权。这些是单独的表,因为它们具有不同的信息。例如,股票表有一个股票代码列,和一个(主要)交易所列;期权表有一个股票代码列、一个指向股票表的 FK 列、一个行使价列、一个到期日列和一个右侧(看跌/看涨)列。我认为将它们分成两个表是个好主意,尽管这是有争议的。

我需要在数据库中存储交易(或订单或交易)。单笔交易就像“在 2012-04-14 以 200 美元购买 100 股 IBM 股票。交易可以涉及股票或期权。是否应该将交易存储为一张表,其中一列指定交易是否涉及股票或期权,另一列是指向股票表或期权表的 FK?或者应该有两个交易表,一个用于涉及股票的交易,一个用于涉及期权的交易?

稍后,我还需要添加一个位置表。一个简单的头寸由两笔交易组成,例如今天买入 100 股 IBM 股票,明天卖出 100 股 IBM 股票。然而,它也可能更复杂,涉及期权和股票(例如,有保障的看涨期权)。似乎如果我为交易做两个表,那么我在设计头寸表时遇到的困难与我实现单个交易表时遇到的困难相同:我需要一个指向股票交易表或期权交易的外键 table 。

这让我觉得应该有一个包含股票和期权的单一工具表。然而,股票所需的信息与期权(见第一段)有很大不同,这也让人感觉不对。包含股票的行将所有特定于期权的列都为空。

我应该如何设计这个数据库?

最佳答案

您可能应该考虑制作 STOCK s 和 OPTION s 新表的子类型:INSTRUMENT .当您交易或记录头寸时,将与父类(super class)型 INSTRUMENT 有关。 .

这让您可以为您的股票和期权保留不同的表格,这是明智的,因为它们具有不同的属性。同时,它允许您以合理的方式处理一组事务。

关于database-design - 数据库设计 : stock & option trades,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10308719/

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