- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个股票市场模拟器,我希望尽可能真实。
我的问题是:纳斯达克有 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/
我是一名优秀的程序员,十分优秀!