gpt4 book ai didi

mysql - 为证券交易所构建数据库的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-29 15:53:35 26 4
gpt4 key购买 nike

我正在尝试制作一个股票市场模拟器,我希望尽可能真实。

我的问题是:纳斯达克有 3000 多家公司,并且在他们的股票数据库中,对吗?!但它是否是 sql 数据库上每个符号的每个份额的一个入口行,如下面的示例所示?

Company Microsoft = MSFT

db `companies_shares`

ID symbol price owner_id* company_id last_trade_datetime
1 msft 58.99 54334 101 2019-06-15 13:09:32
2 msft 58.99 54334 101 2019-06-15 13:09:32
3 msft 58.91 2231 101 2019-06-15 13:32:32
4 msft 58.91 544 101 2019-06-15 13:32:32

*owner_id = user id of the person that last bought the share.

还是根据做市商提供的可供交易的股票和买卖需求来计算?例如:

我已经尝试过第一个示例,因为它在我的数据库中占用了大量空间,并且我担心所有这些交易的带宽,特别是当每分钟发出数百万个请求(交易)时。

我已经尝试过第一个示例,因为它在我的数据库中占用了大量空间,并且我担心所有这些交易的带宽,特别是当每分钟发出数百万个请求(交易)时。

最好的解决方案是什么?数据库还是数学?

提前致谢。

最佳答案

您可能还想在 Google 上搜索多对多关系。

这样想吧。一个人可能拥有很多股票。一支股票可能被很多人持有。这是一种多对多关系,通常使用物理数据库中的三个表进行建模。这通常写为 M:M

此外,人们可能会多次购买或出售一家公司,这可能会使用另一个表格进行建模。从人的角度来看,将会有很多交易,因此我们有一种新型的一对一(人)对多(交易)的关系。这通常被写为 1:M 关系。

至于存储什么,作为一般规则,最好存储原子数据片段。例如,对于一笔交易,至少存储客户 ID、交易日期/时间、买入或卖出的数量以及价格。

您可能还想阅读有关标准化的内容。通常,第三范式是一个值得努力的良好水平,但其中很多是“这取决于您的情况和您需要做什么”。通常人们会为了访问速度而进行非规范化,但代价是更多的存储空间和可能更复杂的更新......

您还提到了业绩,通常是纳斯达克这样的大公司。如果 IT 基础设施将使用多层。每层将具有不同的作用,从而具有不同的功能特征和性能特征。通常,它们是在集群中一起运行的多台服务器。例如,他们可能使用 NoSQL 系统来管理大量交易。从那里可能会有一个馈送(例如 kafka)进入其他系统以用于其他目的(例如欺诈预防、分析、报告等)。

您还提到了数据量。我不知道您所说的数据量是多少,但我工作过的一位金融客户在 300 多台服务器上运行了数 Peta 字节的存储(1 Peta 字节 = 1000 TB),仅用于他们的分析平台。就金融机构而言,它们的规模可能属于中型到大型。

我希望这有助于为您指明正确的方向。

关于mysql - 为证券交易所构建数据库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623045/

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