设计金融交易系统数据库架构的设计原则?

     2023-02-16     56

关键词:

【中文标题】设计金融交易系统数据库架构的设计原则?【英文标题】:Design principles for designing database architecture of financial transaction system? 【发布时间】:2011-01-09 09:55:53 【问题描述】:

我想设计一个数据库来记录金融交易。我想把它设计成一个产品,这样它就可以用于任何类型的金融交易。是否有一些特定于金融交易数据库设计的设计原则?可以帮助我以最小的架构级别更改使数据库更持久耐用。一些好的例子也会有很大的帮助。

谢谢

【问题讨论】:

【参考方案1】:

财务系统特有的一些事情包括内部控制(这是一个重要的会计术语,做一些研究以真正考虑这一点)。输入支票值的人也不能批准它。诸如使用存储过程而不是从应用程序生成的 SQL 之类的事情,这样您就可以将权限限制为仅过程(在金融系统中根本没有动态 SQL),因此用户只能做他们被授权做的事情。除了生产 dba 和表格的替代者之外,任何人都没有任何权利。欺诈是您试图保护系统免受外部攻击的东西。安全性对金融系统至关重要。

您还需要审核表来了解谁更改了哪些数据以及何时更改了旧值以及旧值是什么。如果有人绕过内部控制(或系统忘记实施一些关键控制)偷钱,这不仅是帮助发现问题的另一种方法,而且能够在无需恢复的情况下撤消错误通常是至关重要的。一般而言,会计系统通常具有用户无法查看的数据字段,并且这些数据字段是通过默认值或以用户看不到它们的方式生成的。

另一件事是您需要及时查看操作,因此可能看起来像自然关系的事物可能需要非规范化以保留操作发生时的成本。因此,如果您有一个每小时费率表,您可以使用它作为查询来获取操作时的费率,而不是加入它以获取查询时的费率。

财务系统中几乎总是包含私人数据,请考虑您将如何保护这些数据。您将需要加密和解密数据。您可能还需要加密备份。

这些数据是公司的命脉,拥有良好的备份计划和大量的恢复练习至关重要。异地备份至关重要。

数据完整性至关重要。您需要正确的数据类型,并且需要 pk/fk 关系、约束和触发器来执行规则。金融系统不能承受孤立记录。

您需要非常谨慎地考虑删除。财务系统经常进行软删除(将记录标记为已删除以避免丢失历史数据。是的 XYZ 公司不再是客户,但您不想丢失他们过去的订单的财务历史记录。我什至不会考虑在金融系统中使用级联删除。

在设计系统时不要只与会计师交谈,而应与将运行系统的财务人员和将对结果进行审计的审计员交谈。阅读并彻底了解您正在设计的国家/地区的已发布会计准则。看看税收影响。这是复杂的东西。

考虑数据仓库和归档数据。财务系统经常查询旧数据以获取报告,报告对于财务系统来说非常大、非常大。思考如何在不影响日常数据输入的情况下有效地做到这一点。

【讨论】:

【参考方案2】:

根据您实际想要实现的目标,要创建一个有用的“财务交易”系统,您需要自学有关日记帐、分类帐和其他会计细节的知识。它不像在表中记录实际事务那么简单......

真的,我认为您不会发现金融系统的数据库设计原则与任何需要其信息 100% 正确的数据库系统完全不同。

因此,在使用数据库时阅读以下内容不会伤害任何人:

Database Design Best Practices

Do you source control your databases?

Database Development Mistakes Made by App Developers

What are some of your most useful database standards?

【讨论】:

读书笔记:交易型系统设计的一些原则

...心技术–跟开涛学搭建高可用高并发系统》概述一个好的设计要做到,解决现有的需求和问题,把控实现和进度风险,预测和规划未来,不要过度设计,从迭代中演进和完善。在设计系统时,应多思考墨菲... 查看详情

基于电商业务中台最佳实践:总体架构介绍与交易业务中台核心设计

...原则:大中台+小前台的架构思路业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进。平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便于定制化扩展。前后端分离... 查看详情

系统架构中的道理

1.金融信息中最重要的第一步就是业务模型设计,业务模型设计不好,将来都是坑;2.金融系统我从增删改查->增改查->增查逐步认识,好的金融系统设计应该是保留所有痕迹,同时保持高性能的;3.每张表必须要有主键,主... 查看详情

架构高可用高并发系统的设计原则

...术》及《linux就该这么学》学习笔记及自己的感悟:架构设计之高可用高并发系统设计原则,架构设计包括墨参考技术A通过学习《亿级流量网站架构核心技术》及《linux就该这么学》学习笔记及自己的感悟:架构设计之高可用高... 查看详情

架构设计实践

一、架构设计原则架构原则源于业务目标。架构设计不像数据公式或者定律,很难一概而就。很多时候是设计者(架构师)的各种设想,各种权衡折中而符合系统需求的智慧输出。一些好的架构设计原则可以确保... 查看详情

高可用高扩展低延迟交易处理系统架构设计

...性、高扩展性、低响应延迟的交易处理系统,在系统架构设计上,需要有诸多考虑。 1.交易处理系统的功能 交易系统是用于连接多个不同的交易请求系统(上游系统)与交易受理系统(下游系统),在这些交易上下游系... 查看详情

微博众筹的架构设计

微博众筹的架构设计导读:我们每一天都能感受到互联网金融的成长和进步,在6月19日,微博商业产品部联合天弘基金(余额宝),小米支付、还有创业公司付钱拉等金融技术团队策划了首届互联网金融系统沙龙,围绕在互联网... 查看详情

架构实践微服务架构设计原则

...目工程中;所有的功能打一个war包部署到服务器;应用与数据库分开部署;通过部署应用集群和数据库集群来提高系统的性能。优点&#x 查看详情

架构实践微服务架构设计原则

...目工程中;所有的功能打一个war包部署到服务器;应用与数据库分开部署;通过部署应用集群和数据库集群来提高系统的性能。优点&#x 查看详情

分布式存储系统架构设计,应该遵循什么样的原则?(代码片段)

分布式存储系统架构设计,应该遵循什么样的原则?分布式存储系统,本质是将数据分散存储在多台独立的x86设备上。传统的网络存储系统通常采用集中的存储服务器存放数据,存储服务器很容易成为系统性能的瓶颈,也容易成... 查看详情

软件架构设计原则-合成复合原则(代码片段)

...度。典型案例在软件开发过程中,我们常常会使用到数据库,接下来我们就以数据库连接做一下简单的示例首先,我们新建一个数据库连接类DBConnectionpublicclassDBConnectionpu 查看详情

vivo全球商城:电商交易平台设计(代码片段)

本文介绍了交易平台的设计理念和关键技术方案,以及实践过程中的思考与挑战。作者:vivo官网商城开发团队-ChengKun、LiuWei本文介绍了交易平台的设计理念和关键技术方案,以及实践过程中的思考与挑战。点击查阅:《vivo全球... 查看详情

系统架构聊聊开源消息中间件的架构和原理

...场景是需要我们用到消息中间件的?为什么要使用?怎么设计中间件私有云让开发比较爽?(鉴于不同同学语言擅长不相同,这里只聊设计原理和机制方面的内容,本文会涉及市面上流行的开源产品,如a 查看详情

《架构真经:互联网技术架构的设计原则》

...AKF立方体中的X轴扩展,即水平扩展。通过复制服务或者数据库以分散事务负载。研发成本低,适用于业务发展初期,业务复杂度低,需要增加系统容量的场景。规则8Y轴拆分AKF立方体中的Y轴扩展,将服务和数据按照动词/名词定... 查看详情

软件架构设计原则-合成复合原则(代码片段)

...度。典型案例在软件开发过程中,我们常常会使用到数据库,接下来我们就以数据库连接做一下简单的示例首先,我们新建一个数据库连接类DBConnectionpublicclassDBConnectionpublicStringgetConnection()return"MySql数据库连接";... 查看详情

java架构师必须知道的6大设计原则

序言在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式,不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则,和具体阐述意义。开发原则面向对象的基本原则(so... 查看详情

系统架构高可用系统设计原则01(代码片段)

...(HighAvailability)简称HA,通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。通俗来讲就是通过专业的设计保障系统相关服务能够不间断的稳定运行。度量方式:%availability=(TotalElapsedTime-Sum... 查看详情

软考系统架构设计师简明教程|系统设计

>>回到总目录<<文章目录人机界面设计练习题软件设计练习题结构化设计结构化设计的划分结构化设计的原则模块独立保持模块的大小适中多扇入少扇出深度和宽度均不宜过高模块要素面向对象设计设计原则练习题模式... 查看详情