会计和数据库设计,存储借方和贷方金额

2024-01-14

问题:在下面的情况下,我是否应该将所有金额存储为正小数金额,然后将该金额标记为“借方”或“贷方”,而不是将借方存储为负金额,将贷方存储为正金额?


在我的数据库设计中,我将“借方”存储为负金额,将贷方存储为正金额。

现在,在报告中有时结果会出错,因为如果你这样做

总金额 = 金额-费用,如果提款金额为 100 美元,则费用为 1 美元。

你最终会得到 -$100-$1 = -$101,这是结果不正确!


正如您所发现的,对所有内容使用一列,然后对借方或贷方使用负数是行不通的。会计值不是标量——它们是包含枚举(借方或贷方)和定点十进制数(可以是正数或负数)的向量。

任何会计交易都必须包含相同数量的借方和贷方。如果没有,则这不是有效的交易。

同样,账户余额也是同样的向量。在任何时刻,会计系统中所有账户的总借方和总贷方必须彼此相等,否则就会出现问题。

另一种看待这个问题的方法是将会计价值视为一个复数,其中借方是实数,贷方是虚数。这意味着 4 个借方 + 3 个贷方 = 4 + 3i。这很明显表明您can't通过将虚数项折叠为负实数项来进一步简化 - 它不是相同的数轴轴。这与声称 4 + 3i = 4 - 3 相同。不是有效的数学。

如果数据库可以本地存储复数,那么复数实际上是存储会计数据的好方法,可能会消除程序员通常对会计产生的许多困惑,并且会产生各种有趣的属性。例如,平衡交易的相位角始终为 45 度,平衡账户集也是如此。但大多数数据库需要您在存储之前将复数分解为实数项和虚数项,并将这些项存储在不同的列中 - 在会计领域,这两列的名称分别是“借方”和“贷方”。

P.S.:我知道有些人确实用负数表示贷方,用正数表示借方,但这需要非常小心才能正确执行,而且很脆弱。每次接触任何账户时,你都必须跟踪它的正常余额——例如,由于资产账户有借方正常余额,那么你可以使用正数来增加它。但负债账户的正常余额为负,因此该账户价值的增加是负数。你不能在任何时候将这两个值相加——它们不是同一件事。借方是您所拥有的东西,而贷方是您所欠的东西。将两者放在数据库表的同一列中味道很糟糕。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

会计和数据库设计,存储借方和贷方金额 的相关文章

  • 使用 POJO 仅更新 JOOQ 记录中已更改的字段

    我想使用 POJO 作为源来更新 JOOQ 记录中已更改的字段 Record from Object http www jooq org javadoc 3 8 x org jooq Record html from java lang O
  • Visual Studio 2012 - 数据库发布向导已停止?

    我正在使用 VS 2012 和 SQL Server 2008 刚刚注意到服务器资源管理器中缺少 发布到提供商 选项 据此 数据库发布向导已停止使用 http forums asp net post 5122271 aspx http fo
  • SQL中如何合并多个表的数据

    我想我的处境很复杂 这是场景 我在 SQL Server 中有 3 个表 注册 学生 课程 仅供参考 没有外键 表的列是 Student 学生号 学生名 Course 课程 ID 课程名称 注册 注册 ID 学生 ID 课程 ID 课程结果
  • 使用python shelve跨平台

    我希望得到关于 Python 中的书架 数据库的一些建议 问题 我在 Mac 上创建了一个数据库 我想在 Windows 7 上使用该数据库 我使用 Python 3 2 MacOS 10 7 和 win 7 当我在 Mac 上打开并保存我
  • 使用全文搜索查找精确匹配

    使用 Sql Server 2008 如何使用全文搜索来实际找到精确的字符串匹配 我对此感到非常困难 而且我在网上找不到令人满意的解决方案 例如 如果我正在搜索字符串 Bojan Skrchevski 我希望第一个结果正是如此 到目前为止
  • JSON 值的模式匹配

    运行 Postgres 12 5 的本地 docker 实例 4MBwork mem 我正在实施这个图案 https dba stackexchange com q 108447 3684搜索 json 中的任意字段 目标是搜索并返回 JS
  • 使用 SqlDataReader.IsDBNull 时使用列名

    我已经得到了从 SQL DB 读取数据的代码 我不知道应该如何编辑它 以便我可以使用原始列名称而不是列索引 string query SELECT FROM zajezd WHERE event thisrow AND year klien
  • 如何将数据库查询的行转换为 XML 文件?

    我正在开发一个 Delphi 应用程序 该应用程序需要从一段工作中获取行并将其转换为单个 XML 文件 以便上传到第三方 Web 服务 有没有可用的组件或库可以做到这一点 如果不是 那么构建 DB2XML 转换器的最佳代码方法是什么 我注意
  • TSQL如何在xml列中选择具有技能的员工

    在如下所示的表架构中 CREATE TABLE dbo Employee EmployeeId uniqueidentifier NOT NULL Name nvarchar 50 NOT NULL Location nvarchar 50
  • 安装 SQL Server 2012 错误“系统无法打开指定的设备或文件。”

    我正在尝试在已安装 SQL Server 2008 R2 Express 和 Windows 7 的计算机上安装 SQL Server 2012 Developer 我使用 Microsoft Secure Download Manager
  • 字符串文字上的 SQL Server T-SQL N 前缀[重复]

    这个问题在这里已经有答案了 这可能是一个菜鸟问题 但我发现了一些 T SQL 查询示例来验证数据库大小SELECT and WHERE clause here http technet microsoft com en us library
  • 无法删除数据库 mysql:错误 3664 (HY000)

    我的应用程序中有一个名为X Files 我想要drop它 但每当我运行命令时drop database X Files我收到以下错误 mysql gt drop database X Files ERROR 3664 HY000 Faile
  • 在数据库中建模抽象基类和子类

    我有4个子类 Video Image Note and Form 每一项都包含不同类型的数据 例如 Image类包含磁盘上图像文件的路径和图像属性 以及Form类包含表单字段值 然而 每个项目之间的共同元素是 GPS 坐标和航向 因此我有以
  • 什么会导致 Oracle ROWID 更改?

    AFAIK Oracle 中的 ROWID 表示相应数据文件中记录的物理位置 在什么情况下记录的ROWID可能会改变 我所知道的一个是分区表上的更新 它将记录 移动 到另一个分区 还有其他情况吗 我们的大多数数据库都是 Oracle 10
  • 如何从 SQL Server 中的 SELECT 进行更新?

    In SQL服务器 可以将行插入到带有INSERT SELECT陈述 INSERT INTO Table col1 col2 col3 SELECT col1 col2 col3 FROM other table WHERE sql coo
  • 有没有办法在插入查询中执行另一个查询?

    好的 这是我的查询 我刚刚添加了 ACCOUNTID 和 accountID 部分 这显然不起作用 INSERT INTO Leads LEADID CREATEUSER CREATEDATE FIRSTNAME MODIFYDATE AC
  • 如何在 SQL Server 中创建文件格式

    我正在尝试在 SQL Server 2017 中试验外部文件 但在第一步中遇到了困难 数据是管道分隔的 我试图遵循文档中的语法 这需要一个FILE FORMAT 以下是 Microsoft 的语法 CREATE EXTERNAL TABLE
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 如何在事务中使用链接服务器插入远程表?

    我的链接服务器设置正确 我能够执行以下查询 插入 远程服务器 表 SELECT FROM 本地服务器 表 然而当我做同样的事情时交易内 开始传输 插入 远程服务器 表 SELECT FROM 本地服务器 表 提交交易 我收到类似的错误 用于
  • 如何使用 R 中的函数 sqlSave() 将数据附加到具有 IDENTITY 主键的 SQL Server 表?

    我在SQL Server中创建了一个表 如下所示 CREATE TABLE testPK ID INT NOT NULL IDENTITY 1 1 PRIMARY KEY NumVal NUMERIC 18 4 现在我想使用 RODBC 函

随机推荐

  • 即使加载正确的 URL,也会出现 NotLoadingAPIFromGoogleMapsError

    我正在得到NotLoadingAPIFromGoogleMapsError即使使用正确的 URL 某些用户也会出现错误 哈巴狗语法 script type text javascript src https maps googleapis
  • 链接到 WebView 内的资源 - iPhone

    我的 iPhone 应用程序中有一个 webview 我的 Resources 文件夹中也有一些 html 文件 当我的应用程序加载时 我将资源中的页面加载到我的网络视图中 但是 我需要在我的 webview 中创建指向其他资源 例如图像或
  • 发送 svg 作为 prop 会被渲染为 [object Object]

    我正在尝试将 SVG 图像作为对象中的字段发送 使用物体作为道具 创建对象数组 import eagles from logo svg import packers from packers svg import panthers from
  • emacs 临时文件的奇怪 .gitignore 行为

    如果我编辑new file txt使用 emacs 会有临时文件 例如 new file txt and new file txt当文件未保存时 以及new file txt 保存时 我想排除这些文件 所以我写我的 gitignore像这样
  • C++:删除与自由和性能

    考虑 char p NULL free p or delete p 如果我使用会发生什么free and delete on p 如果一个程序执行时间很长 比如10分钟 有什么办法可以将其运行时间减少到5分钟吗 关于 new delete
  • 在同一模块中使用时,IntelliJ 无法找到生成的源

    我正在使用注释处理器谷歌的汽车工厂 https github com google auto tree master factory 我注释了SomeClass with AutoFactory并引用了new SomeClassFactor
  • 使用 txt 文件中的字符串填充数组

    Data txt 包含如下内容 猫 狗 老鼠 我想用该文件中的字符串填充一个数组 dico 0 Cat dico 1 Dog aso 我找到了这个 如何从 Swift 中调用 Objective C 的 NSArray 类方法 https
  • 我可以在提交 SQLite 事务后回滚该事务吗?

    SQLite 有没有办法在提交后基本上撤消最新事务 我想将数据库恢复到事务或保存点之前的状态 我查看了回滚命令 但看起来它仅限于回滚待处理的事务 Edit我可以创建一个名为 撤消 的保存点并等待在开始下一个操作之前释放它 或者在需要撤消它时
  • 单个查询中的 Wikipedia API 和 SPARQL

    我需要搜索其中包含一些特定单词的维基百科页面全文 为了改善结果 我想将结果限制为描述实体的页面的实例一个特定的实体 为了搜索全文 我可以使用 Wikipedia API 使用查询动作和搜索生成器 为了过滤给定实体的实例 我可以使用 Wiki
  • 如何检查包含路径下是否存在文件?

    您可以使用以下命令获取 PHP 中的当前包含路径get include path 我想知道检查是否可以包含该文件而不发出 PHP 错误的轻量级方法是什么 我正在使用 Yii 框架 我想要导入而不发出 PHP 错误 但我失败了 从 PHP 5
  • 如何避免以下代码中的Java.util.IllegalStateException?

    我有一个包含重复值的整数列表 我需要做的是找到重复的整数 添加它们的值 然后通过删除找到的重复项将结果添加到列表中 这是我正在做的事情 List
  • 如何设计从行创建动态列的查询

    我有数据 Table1 ID Name 1 n1 2 n2 3 n4 Table2 FID YearS Val 1 2008 Up 1 2009 Down 1 2010 Up 2 2000 Up 2 2001 Down 2 2002 Up
  • 如何在webview_flutter中设置Cookie?

    如何在初始化时在webview flutter中设置Cookie body WebView initialUrl index url javascriptMode JavascriptMode unrestricted onWebViewC
  • 将 CoffeeScript 与 Eclipse 集成?

    有没有一种方法可以集成 CoffeeScript 和 Eclipse 以便当我在一个窗口中编写 CoffeeScript 时 另一个窗口会将编译后的代码显示为 Javascript 我会等待答案 谢谢 我已经在我的项目中使用构建器和小型 s
  • 图像权限(不希望它们出现在图库中)

    我正在开发一个将图像存储在 Android data 文件夹中的应用程序 这些图片在画廊中可见 但我不想要这样 是否可以设置文件夹的权限 以便它们只能由应用程序本身使用 或者我应该将它们存储在另一个文件夹中 创建一个名为 nomedia在文
  • 我可以将 LESS 与 Xul 一起使用吗?

    我可以用吗LESS http lesscss org 与徐尔 有人已经一起使用过它们吗 我还没见过有人使用它 但没有什么能阻止你尝试 LESS 只是一个预处理器 它输出 CSS 文件 因此您可能会发现的问题应该与您可能需要使用的 Mozil
  • 当字符串包含多个双引号时,从字符串中提取 URL 的正则表达式失败?

    我正在使用正则表达式从字符串中提取 url 它大部分工作正常 var regex new Regex a href a
  • 在 android 中从 Shoutcast Url 播放

    我正在开发一个需要播放 Shoutcast 广播的应用程序 对于API我已经遵循了这个URL http wiki winamp com wiki SHOUTcast Radio Directory API 我成功地使用我的开发者 ID 获取
  • 在 CUDA 中使用 SIMD 实现位旋转运算符

    我知道 StackOverflow 不是用来向其他人询问代码的 但让我说一下 我正在尝试在 CUDA C 设备代码中实现一些 AES 函数 在尝试实现左字节旋转运算符时 我很不安地发现没有原生 SIMD 内在功能 所以我开始了一个幼稚的实现
  • 会计和数据库设计,存储借方和贷方金额

    问题 在下面的情况下 我是否应该将所有金额存储为正小数金额 然后将该金额标记为 借方 或 贷方 而不是将借方存储为负金额 将贷方存储为正金额 在我的数据库设计中 我将 借方 存储为负金额 将贷方存储为正金额 现在 在报告中有时结果会出错 因