我的公司正在启动一项新的计划,旨在从零开始建立一个金融数据库。
我们将以以下方式使用它:
数据的大致宽度:
周期性:日、月、季、年
20年的回眸,随着时间的推移而增长
问:在我们的PostgreSQL数据库中,我们应该使用什么模式?现在,我正在考虑每个公司的一个时间序列表,每个类别的数据字段,用于完全规范化的DB。例如,一个表用于IBM的所有资产负债表字段,另一个表用于IBM的现金流项目,等等用于所有类别的数据和每个公司。时间戳作为记录,数据字段作为列/字段。然后,对于快速查询,创建一个仓库和视图等,这些仓库和视图不是完全规范化的,而是针对我上面列出的用例的查询而优化的。然而,如果你看看我上面的公司和领域的数量,如果我的表格相当宽,我可能会得到超过20万张表,作为我的基本财务数据,这也不是很好。那是很多桌子,但我看不出另一种好办法。
如果有更好的地方问这个问题,请告诉我。
如果您需要更多的信息,我很高兴编辑我的问题,并添加它。
PS -我在SO Quant网站上问了一个类似的问题,但是没有得到太多的模式帮助。此外,非模式重点的答案是可以的,但是请注意,我在这里寻找模式设计方面的帮助。
发布于 2016-08-31 08:29:10
您可以通过创建3或4个表来实现这一点:
公司信息将包含有关所有公司的信息,为每个公司分配一个公司ID,稍后将用于加入财务字段。根据您的需求使用一些SCD类型(缓慢变化的维度),比如Ticker经常更改字段。所以仔细分配一个公司的ID。
将你的财务数据在分录和价值之间分开。
在基本分录表中,为每个公司ID和每个财务分录生成唯一ID (例如ID_FS_ENT) (这将是期间结束、会计准则、财政期间等的组合)。
在财务数据表中存储财务价值以及ID_FS_ENT、字段名(即股票、固定资产总额、收益等)。
如果你也收到每一家公司的每日市值,然后单独储存。再次使用“公司ID”,将交易日期和值添加到此表。
希望这能有所帮助!
我已经与100,000多家公司管理了一个类似的数据库,涉及78个经济体和大约1亿个财务条目。
发布于 2016-08-31 17:04:33
看看蜂巢。它很适合这个任务。时间序列数据有特殊类型的数据库。但是,如果您决定使用RDBMS,我认为这是最好的方法:
https://dba.stackexchange.com/questions/148398
复制相似问题