首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >金融数据库设计

金融数据库设计
EN

Database Administration用户
提问于 2014-11-30 17:35:34
回答 2查看 14.8K关注 0票数 5

我正在开发一个存储财务数据的应用程序,并需要对存储多个财务报表的数据的表进行建模。我想出了以下两种设计,但我无法决定使用哪一种。谢谢你的意见。

图1

图2

更新

基于丹尼尔以下答案的第三张图表

图3

EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-11-30 21:24:18

海事组织、资产负债表、损益表和现金流量表可以是相同的。以下是我的看法:

代码语言:javascript
复制
-- Companies
CREATE TABLE company (
    [id]      int NOT NULL PRIMARY KEY,
    [name]    varchar(255) NOT NULL
);

-- "Balance sheet", "IFRS Income statement", etc
CREATE TABLE statement (
    [id]      int NOT NULL PRIMARY KEY,
    [name]    varchar(255) NOT NULL
);

--- "Tangible assets", "Outstanding stock", etc
CREATE TABLE statementRow (
    [id]      int NOT NULL PRIMARY KEY,
    statementId int NOT NULL,
    rowOrder  int NOT NULL,
    rowTitle  varchar(255) NOT NULL,
    rowDescription varchar(max) NULL,
    rowProperties varchar(max) NULL,
    FOREIGN KEY (statementId) REFERENCES statement ([id])
);

--- The facts
CREATE TABLE statementFact (
    companyId      int NOT NULL,
    statementRowId int NOT NULL,
    [date]         date NOT NULL,
    amount         numeric NULL,
    PRIMARY KEY ([date], statementRow),
    FOREIGN KEY (companyId) REFERENCES company ([id]),
    FOREIGN KEY (statementRowId) REFERENCES statementRow ([id])
);

这种模式的优点:

  • 您可以有不同类型的资产负债表、损益表等,以满足今后的报告需求。
  • 该模型为每个语句定义了行的顺序(不要为此依赖标识列,因为以后无法插入行)
  • 使用“日期”而不是“年份”允许您每年发布一次以上的报表,即每个季度或一个月,甚至是临时发布报表。
  • rowProperties字段允许您添加信息,比如该行应该是粗体、斜体还是其他格式属性。
  • 如果某些报告只适用于某些公司,则可以选择将"companyId“从statementFact移到"statement”。
票数 6
EN

Database Administration用户

发布于 2014-11-30 20:30:57

如果没有更多的应用领域知识,就很难给出一个好的答案。

然而,我通常更喜欢设计2,因为“工件”(收益表、资产负债表和现金流量)(我想)总是属于一个特定的公司/财务报表。使用设计#1,多个财务报表可能与相同的工件相关,这(我认为)会很奇怪。

我不确定我是否明白财务报表的目的;这些陈述不能直接与一家公司有关,并包括一年吗?这样就很容易在特定年份查询特定类型的状态,少了一个联接。

如果每个工件的内容只是文本,您还可以考虑将它们存储在同一个表中,其中包含语句项中的文本和类型属性;再次保存一个联接。正如我所理解的,您的语句项与工件的比例为1:1。

我希望我的想法对你有用。祝你今天愉快:)

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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