首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >金融数据库模式

金融数据库模式
EN

Database Administration用户
提问于 2016-08-31 04:10:13
回答 2查看 3.7K关注 0票数 5

我的公司正在启动一项新的计划,旨在从零开始建立一个金融数据库。

我们将以以下方式使用它:

  • 时间序列分析:一家公司的财务数据(例如:IBM的固定资产总额随时间的推移),汇总(例如:材料部门的固定资产总额)等等。
  • 单个公司快照:单个公司的各种数据点
  • 分析多家公司跨越多个数据字段的单个时间框架,通常是当前的一天。
  • 回溯测试、等级分析、数据分析等观念和习惯因素.

数据的大致宽度:

  • 3000家公司
  • 3500个数据字段(例如:固定资产总额、收益等)
  • 500汇总级别

周期性:日、月、季、年

20年的回眸,随着时间的推移而增长

问:在我们的PostgreSQL数据库中,我们应该使用什么模式?现在,我正在考虑每个公司的一个时间序列表,每个类别的数据字段,用于完全规范化的DB。例如,一个表用于IBM的所有资产负债表字段,另一个表用于IBM的现金流项目,等等用于所有类别的数据和每个公司。时间戳作为记录,数据字段作为列/字段。然后,对于快速查询,创建一个仓库和视图等,这些仓库和视图不是完全规范化的,而是针对我上面列出的用例的查询而优化的。然而,如果你看看我上面的公司和领域的数量,如果我的表格相当宽,我可能会得到超过20万张表,作为我的基本财务数据,这也不是很好。那是很多桌子,但我看不出另一种好办法。

如果有更好的地方问这个问题,请告诉我。

如果您需要更多的信息,我很高兴编辑我的问题,并添加它。

PS -我在SO Quant网站上问了一个类似的问题,但是没有得到太多的模式帮助。此外,非模式重点的答案是可以的,但是请注意,我在这里寻找模式设计方面的帮助。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2016-08-31 08:29:10

您可以通过创建3或4个表来实现这一点:

  1. 公司信息
  2. 基本条目
  3. 基本数据
  4. MarketCap数据(可选)

公司信息将包含有关所有公司的信息,为每个公司分配一个公司ID,稍后将用于加入财务字段。根据您的需求使用一些SCD类型(缓慢变化的维度),比如Ticker经常更改字段。所以仔细分配一个公司的ID。

将你的财务数据在分录和价值之间分开。

在基本分录表中,为每个公司ID和每个财务分录生成唯一ID (例如ID_FS_ENT) (这将是期间结束、会计准则、财政期间等的组合)。

在财务数据表中存储财务价值以及ID_FS_ENT、字段名(即股票、固定资产总额、收益等)。

如果你也收到每一家公司的每日市值,然后单独储存。再次使用“公司ID”,将交易日期和值添加到此表。

希望这能有所帮助!

我已经与100,000多家公司管理了一个类似的数据库,涉及78个经济体和大约1亿个财务条目。

票数 5
EN

Database Administration用户

发布于 2016-08-31 17:04:33

看看蜂巢。它很适合这个任务。时间序列数据有特殊类型的数据库。但是,如果您决定使用RDBMS,我认为这是最好的方法:

  1. 建立正态模型
  2. 性能测试用负载数据
  3. 对数据进行去噪或分割以提高性能
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/148398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档