首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设计银行金融交易数据库模式?

如何设计银行金融交易数据库模式?
EN

Database Administration用户
提问于 2021-10-13 13:34:52
回答 1查看 5.1K关注 0票数 1

我正在编写一个简单的银行数据库模式。这是为了学习的目的,而不是真正的银行。现在我被困在设计金融交易上了。

交易可以是不同类型的:

  • 银行内部账户间的转账。这种类型的事务既有发送方帐户,也有接收方帐户。
  • 提款。这类交易只有一个提款的帐户。
  • 押金。这类交易只有一个存款账户。
  • 支付服务费用。此类型的事务具有已支付的帐户和服务类型。

此外,所有事务类型都有创建的金额和日期。如何更好地设计具有多种事务类型的数据库模式?这也应该是很容易得到一个帐户的所有交易的列表。最简单的设计方法就是为每种事务类型创建一个单独的表。示例模式:

但是这个设计有一些问题。

  • 没有唯一的事务id。
  • 要获得所有事务的列表并不容易(唯一的方法是将所有事务从所有表中合并)。
  • 如果出现新的事务类型,则需要更新获取事务列表的逻辑。

另一个想法是创建一个表transaction,该表对于创建的所有事务、事务类型、金额和日期具有唯一的id。模式:

该模式解决了事务id唯一性的第一个问题。但还有另外两个问题。

你知道它是如何在真实的银行系统中设计的吗?如果有任何建议,我会很高兴的!提前感谢!

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-10-13 14:03:34

@zenno2 --如果您在最上面描述的是事务类型的范围,您可能会过度考虑这一点。这本质上是与帐户的基本关系(这是主要的或核心的)。

股份(S)--例如,账户01可能有一个储蓄账户、一个支票账户和一个汽车贷款,因此储蓄(1)、储蓄(2)和贷款(1)交易是这里的一切;存款、支付、转账--都在同一个表格中。代码表示每一行的用途:d表示存款,W表示提款,T表示转账。(“付款”将是提款)

如果您想变得更漂亮,您可以为储蓄和贷款提供单独的事务表--这将允许在较小的设计中提供更细粒度的数据。然后记住上面@bbaird发布的内容--如果你能把你的注意力集中在这上面,那么你就在回家的路上了。

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

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

复制
相关文章

相似问题

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