mou*_*r11 5 schema data-warehouse database-design timestamp
我的公司正在启动一项旨在从头开始构建财务数据库的新计划。
我们将通过以下方式使用它:
数据的大致范围:
周期:每日、每月、每季度、每年
20 年的回顾会随着时间的推移而增长
问题:在我们的 PostgreSQL 数据库中,我们应该使用什么模式?现在我正在考虑每个公司的一个时间序列表,完全规范化数据库的每个数据字段类别。例如,一个表用于 IBM 的所有资产负债表字段,另一个表用于 IBM 的现金流项目等,用于所有类别的数据和每个公司。时间戳作为记录和数据字段作为列/字段。然后对于快速查询,创建一个仓库和视图等,它们没有完全规范化,但针对我上面列出的用例的查询进行了优化。但是,如果您查看我上面的公司和领域的数量,如果我的表格很宽,我可能会得到超过 200,000 个表格,仅用于我的基本财务数据,这也不是很好。这是很多表,但我没有看到另一种好的方法来做到这一点。
如果有更好的地方问这个问题,请告诉我。
如果您需要更多信息,我很乐意编辑我的问题并添加它。
PS - 我在 SO Quant 网站上问了一个类似的问题,但没有得到太多的架构帮助。此外,非模式集中的答案是可以的,但请注意,我正在寻求模式设计方面的帮助。
您可以通过创建 3 或 4 个表来实现此目的:
公司信息将包含有关所有公司的信息,为每个公司分配一个公司 ID,稍后将用于加入财务字段。根据您的要求使用一些 SCD 类型(缓慢变化的维度),像 Ticker 这样的字段经常变化。所以仔细分配一个公司ID。
在条目和值之间反转和划分您的财务数据。
在基本条目表中,为每个公司 ID 和每个财务条目(这将是期末、会计准则、会计期间等的组合)生成一个唯一的 ID(例如 ID_FS_ENT)。
在财务数据表中存储财务价值以及 ID_FS_ENT、字段名称(即流通股数、固定资产总额、收益等)
如果您还收到每家公司的每日市值,则将其单独存储。再次使用公司 ID,将交易日期和值添加到此表中。
希望这可以帮助!
PS 我已经在管理一个类似的数据库,其中包含超过 78 个经济体的 100,000 多家公司和大约 1 亿个财务条目。