我想问一下财务报表的数据库设计。我想把资产负债表、利润损失、现金流和比率合并成一个大表,因为每个报表都是相互依赖的。
这是我的桌子结构:
Id,
RegistrationNo,
Year (date),
ProfitLossNetSales,
ProfitLossMonthlySales,
.....,
BalanceReliabilityFinInformation,
BalanceCashBank,
BalanceTimeDeposit,
.....,
CashFlowInterestExpenses,
......像这样的表结构(在一个表中有多个列)可以吗?
更新:在应用程序中,用户输入资产负债表表和损益表(如excel中的输入数据)。只读取现金流量和比率表,其价值以平衡和利润损失为基础。
发布于 2016-07-25 02:32:27
在一个表中有多个列是可以的。事实上,这是正常情况。但是,在一个表中混合不同类型的信息是不行的。
每个表都在现实世界中建模一个“事物”类。规范化规则指导数据库设计人员将类彼此分离。去奥马尔化(在一个表中存储多个东西)是一种合法的技术,但应该谨慎、谨慎地使用,并适当地减少风险。
在您的具体情况下,您必须考虑什么是您的业务领域。您的用户是否只对几家公司几年来的资产负债表底线数字感兴趣(例如投资和交易角度),或者他们是否需要详细说明这些数字是如何计算的(例如会计/簿记的观点)?对于前者,你提到的桌子在我看来是可以的。对于后者,你需要模拟个别交易,复式分类账等,并根据需要计算你的底线数字。
发布于 2016-07-25 03:47:32
就我个人而言,我会把设计分成几张桌子。
我相信您需要绘制实体关系图来显示数据库应用程序中涉及的实体。
例如,客户帐户作为一个表,帐户事务是另一个表,那么对于每个事务,您应该定义事务详细信息表来保存细分信息。
因此,上述表之间的关系是一对多,然后是一对多。
像ProfitLossNetSales这样的东西,可能不是存储在数据库中,而是应该实时计算。
https://dba.stackexchange.com/questions/144760
复制相似问题