Database 证券市场财务数据的数据库模式设计

Database 证券市场财务数据的数据库模式设计,database,mongodb,database-design,nosql,finance,Database,Mongodb,Database Design,Nosql,Finance,我正试图找出用每日插入存储财务数据的最佳结构。 查询数据有3个用例 查询当前数据的特定符号 按值查找当前符号(其中价格3) 绘制每个符号的历史值(不包括2010年至2020年期间的所有股息率) 目前正在考虑使用MongoDB,但我不确定哪种结构最适合我的需要。将每个符号的所有数据嵌入10年似乎太多了,所以我想也许将当前数据嵌入每个符号,并创建对历史文档的引用 您将采取什么方法来存储这些数据?MongoDB不是一个很好的解决方案吗 下面是一个用于一个符号的数据的小示例 { "symb

我正试图找出用每日插入存储财务数据的最佳结构。 查询数据有3个用例

  • 查询当前数据的特定符号
  • 按值查找当前符号(其中价格<10,股息支付金额>3)
  • 绘制每个符号的历史值(不包括2010年至2020年期间的所有股息率)
  • 目前正在考虑使用MongoDB,但我不确定哪种结构最适合我的需要。将每个符号的所有数据嵌入10年似乎太多了,所以我想也许将当前数据嵌入每个符号,并创建对历史文档的引用

    您将采取什么方法来存储这些数据?MongoDB不是一个很好的解决方案吗

    下面是一个用于一个符号的数据的小示例

    {
      "symbol": "AAPL",
      "info": {
        "company_name": "Apple Inc.",
        "description": "some long text",
        "website": "http://apple.com",
        "logo_url": "http://apple.com"
      },
      "quotes": {
         "open": 111,
          "close": 321,
          "high": 111,
          "low": 100
        },
      "dividends": {
        "amountPaid": 0.5,
        "exDate": "2020-01-01",
        "yieldOnCost": 10,
        "growth": { value: 111, pct_chg: 10 } /* some fields could be more attributes than just k/v */
        "yield": 123
      },
      "fundamentals": {
        "num_employees": 123213213,
        "shares": 123123123123,
        ....
      }
    }
    
    谢谢

    您将采取什么方法来存储这些数据

    基于您发布的信息(示例数据和用例),我认为将历史数据存储为单独的集合听起来不错

    影响数据库设计(或数据模型)的一些重要因素是数据量和查询的类型—您计划对数据执行的最重要的查询。假设您发布的JSON数据(股票符号)可以用于执行前两个查询,您可以从将历史数据存储为单独的集合开始。符号的历史数据文档可以是一年或几年,具体取决于查询、数据大小和信息类型

    MongoDB基于文档的模型允许灵活的模式,这对于轻松实现未来的更改和需求非常有用。请注意,MongoDB文档最多可以存储16 MB的数据

    有关参考,请参阅