银行数据库设计问题

Posted

技术标签:

【中文标题】银行数据库设计问题【英文标题】:banking database design issue 【发布时间】:2013-03-22 08:18:45 【问题描述】:

我正在尝试为银行业务建立一个数据库,我为每个账户贷款、存款、支票账户以及付款方式支票、借记卡和现金创建了一个表。

我的问题是如果知道所有表之间的事务都是可能的,我应该如何处理表之间的事务?

例如,客户可以使用借记卡取款、从支票账户转账到贷款或使用支票存款到支票。

我的第一个解决方案是为所有交易和基数 (0...1 n ) 创建一个交易表,以便只有一种付款类型和一个帐户,所以我应该使用它还是只创建一个交易表对于两个表之间的每个关系?

【问题讨论】:

【参考方案1】:

如果“我为每个账户、贷款、存款、支票账户创建了一个表”意味着您有四个以上的表,那么您做的事情非常非常错误。您应该有一张客户表和一张交易表。交易是资金从一个账户转移到另一个账户,因此一个简单的交易表将包含字段 id、交易日期、贷方账户、借方账户、金额。在会计中,经常有涉及多个贷记帐户和借记帐户的交易,因此无法在上面概述的简单交易方案中维护这些交易。

如果您想表示贷款,那么您可能还需要两张表:一张表包含所有贷款的原子详细信息(给定日期、贷款人账户、总金额、名义利率等)和另一表包含每笔贷款的预计还款额。

不需要更多表示存款或支票账户的表格:这些可以表示为账户,类型字段指定它们是哪种类型。

【讨论】:

以上是关于银行数据库设计问题的主要内容,如果未能解决你的问题,请参考以下文章

银行储蓄管理系统——数据库设计

银行的信息技术部的主要工作是啥?

银行分布式数据库设计与运维中的典型难点 | 最佳实践

银行大数据平台架构设计及应用 | 周末送资料

直播预告丨银行业务中台架构设计及实践经验

Java连接Oracle数据库开发银行管理系统设计篇