Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >复式记账系统的数据库模式设计

复式记账系统的数据库模式设计
EN

Stack Overflow用户
提问于 2010-03-22 17:24:47
回答 2查看 85.2K关注 0票数 57

有没有人知道或有任何网站的链接,这些网站描述了如何为复式记帐系统设计数据库模式的细节?

我确实找到了一堆文章,但没有一篇很有说服力。如果有人能帮我的话我会很感激的。

EN

回答 2

Stack Overflow用户

发布于 2013-03-23 03:55:22

创建以下表

  • account
  • transaction
  • line_item
  • contact (可以是客户、供应商或员工)。

为了简单起见,我们将省略account_type表、contact_type表等。

确定表之间的关系并将其设置为

一个联系人可以有多个事务,但每个事务只能有一个联系人(一对多的relationship)

  • an帐户可以有多个事务,一个事务可以影响多个帐户;line_item是事务表和帐户表之间的连接表(多对多的
  • 可以有多个行项目,但每个行项目必须与一个事务相关)。

我们有以下模式(一对多关系):

代码语言:javascript
运行
AI代码解释
复制
CONTACT ———< TRANSACTION ———< LINE_ITEM >——— ACCOUNT

向每个表添加适当的字段

联系

  • contactID
  • name
  • addr1
  • addr2
  • city
  • state
  • zip
  • phone
  • fax
  • email

  • Transaction
    • transactionID
    • date
    • memo1
    • contactID
    • ref

  • line_itemID
  • transactionID
  • accountID
  • amount
  • memo2

  • Line_item

  • 帐户
    • accountID
    • account_name
    • account_type

根据需要创建任意数量的新事务

例如,要在数据库中添加新交易,请在交易表中添加新记录并填写字段,选择联系人姓名,输入日期等,然后将新的子记录添加到每个受影响账户的父交易记录中。每条交易记录必须至少有两条子记录(复式记账系统)。如果我花了20美元现金购买了一些奶酪,请向子记录中的事务记录添加子记录,选择cash account并在amount字段中记录−20.00 (负数)。添加新的子记录,选择杂货帐户,并在amount字段中记录20.00 (正数)。子记录的总和应为零(即20.00−20.00 = 0.00)。

根据上述表中存储的数据在数据库中创建报告

提供数据库中所有记录的查询组织为事务处理行项目子记录按帐户分组,按日期排序,然后按事务处理ID排序。创建一个计算字段,提供事务处理line_items记录中的金额字段和您认为必要的任何其它计算字段的运行合计。如果您希望以借方/贷方格式显示金额,请在数据库查询中创建两个计算字段,其中一个字段称为借方,另一个字段称为贷方。在借方计算字段中,输入公式“如果line_item表的amount字段中的金额为正,则显示金额,否则为null”。在信用计算字段中,输入公式“如果行项目表的金额字段中的金额为负,则显示金额,否则为null”。

基于这个相当简单的数据库设计,您可以不断添加更多字段、表和报告,从而增加数据库的复杂性,从而跟踪您或您的企业财务状况。

票数 63
EN

Stack Overflow用户

发布于 2011-04-02 20:55:47

我想我还是试一试吧。感谢您的意见-我会根据任何人的反馈来完善设计。现在我将使用SQL Server (2005) T-SQL语法,但是如果有人对其他语言感兴趣,请让我知道,我将添加其他示例。

double-entry bookkeeping system中,基本元素是帐户和事务。基本的“理论”是accounting equation:权益=资产-负债。

结合会计等式中的各项和两种类型的名义帐户(收入和费用),帐户的基本组织结构简单地是嵌套帐户的森林,(最小)五个树的根是:资产、负债、权益、收入和费用之一。

我正在研究用于层次结构的良好SQL设计...稍后我会用具体的内容更新它。

SQL Team文章More Trees & Hierarchies in SQL中记录了一个有趣的层次结构设计。

每笔交易都包含平衡的借方和贷方金额。对于每笔交易,借方金额和贷方金额的总和必须完全相等。每个借方和贷方金额都绑定到一个帐户。

更多后续内容...

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

https://stackoverflow.com/questions/2494343

复制
相关文章
适用于 .NET 的开源文本差异对比组件
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具或组件,希望对您有用!
独立观察员
2022/12/31
5830
适用于 .NET 的开源文本差异对比组件
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现|附代码数据
Glmnet是一个通过惩罚最大似然关系拟合广义线性模型的软件包。正则化路径是针对正则化参数λ的值网格处的lasso或Elastic Net(弹性网络)惩罚值计算的 ( 点击文末“阅读原文”获取完整代码数据******** )。
拓端
2022/11/08
3.1K0
选择HLS或WebRTC需要考虑的五个因素
在低延迟HLS或是WebRTC之间做选择时,哪种协议能够带来最佳的实时流体验?因为协议决定了编码视频数据通过网络连接传输的速度,所以在两者之间做出选择是非常重要的。
LiveVideoStack
2020/12/04
1.5K1
选择HLS或WebRTC需要考虑的五个因素
原文链接 / https://www.red5pro.com/blog/5-factors-in-choosing-low-latency-hls-vs-webrtc/
LiveVideoStack
2020/12/16
1.6K0
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
Glmnet是一个通过惩罚最大似然关系拟合广义线性模型的软件包。正则化路径是针对正则化参数λ的值网格处的lasso或Elastic Net(弹性网络)惩罚值计算的。该算法非常快,并且可以利用输入矩阵中的稀疏性 x。它适合线性,逻辑和多项式,泊松和Cox回归模型。可以从拟合模型中做出各种预测。它也可以拟合多元线性回归。
拓端
2021/01/13
6.4K0
jQuery1.3以上版本"@"的问题
jQuery1.3.2已经发布好一段时间了,近日把原来的项目全部从jQuery1.2.6升级为1.3.2了.但是有一点要注意,1.3版以上的jQuery在根据选择属性选择时,去掉了@符号,有某些情况下原有的代码可能会无法正常运行: <input type="radio" name="mySex" value="1"></input>男 <input type="radio" name="mySex" value="-1" checked="checked"></input>女 <hr/> <input ty
菩提树下的杨过
2018/01/22
7700
手把手教你使用R语言做LASSO 回归
LASSO 回归也叫套索回归,是通过生成一个惩罚函数是回归模型中的变量系数进行压缩,达到防止过度拟合,解决严重共线性的问题,LASSO 回归最先由英国人Robert Tibshirani提出,目前在预测模型中应用非常广泛。在新格兰文献中,有大牛提出,对于变量过多而且变量数较少的模型拟合,首先要考虑使用LASSO 惩罚函数。今天我们来讲讲怎么使用R语言通过LASSO 回归构造预测模型。 首先我们要下载R的glmnet包,由 LASSO 回归的发明人,斯坦福统计学家 Trevor Hastie 领衔开发。 加载需要的包,导入数据(还是我们既往的SPSS乳腺癌数据),删除缺失值
全栈程序员站长
2022/06/27
3.6K1
手把手教你使用R语言做LASSO 回归
Glmnet算法ElasticNet
Glmnet算法是一种用于线性回归和分类的正则化算法,其中包括R语言中广泛使用的ElasticNet方法。该算法结合了L1正则化(Lasso)和L2正则化(Ridge),旨在同时实现变量选择和参数估计的优势。
大盘鸡拌面
2023/10/26
3830
直播中,可能造成画面或声音延迟的因素有哪些?
在直播APP开发完成后,技术人员不仅要测试源码的完整性,设备的兼容性,还要顾及到网络对于直播的影响,因为网络不稳定是造成直播画面和声音延迟的最主要因素。事实上,在直播APP开发中,还有一些非网络因素也能造成延迟,今天,小编就和大家一起来全面总结下,所有造成网络延迟的情况。
就爱吃小笼包
2019/11/20
5.1K0
直播中,可能造成画面或声音延迟的因素有哪些?
tidymodels之parsnip的强大之处
工作流是tidymodels中非常重要的概念,它可以把模型设定和预处理步骤(在tidymodels中称为配方)连接起来,成为一个整体的对象。
医学和生信笔记
2023/09/26
2770
tidymodels之parsnip的强大之处
r语言中对LASSO,Ridge岭回归和Elastic Net模型实现
Glmnet是一个通过惩罚最大似然来拟合广义线性模型的包。正则化路径是针对正则化参数λ的值网格处的套索或弹性网络罚值计算的。该算法速度极快,可以利用输入矩阵中的稀疏性x。它符合线性,逻辑和多项式,泊松和Cox回归模型。可以从拟合模型中做出各种预测。它也可以适合多响应线性回归。
拓端
2020/08/22
1.7K0
SpringBoot碰到的疑问或问题
@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
呆呆
2021/10/08
4110
序列预测问题的简单介绍
序列预测与其他类型的监督学习问题不同。这个序列在观察结果上被强加了一个命令:当训练模型和做预测时序列必须保存。通常,包含序列数据的预测问题被称为序列预测问题,尽管他们是一些基于不同输入和输出序列的问题
AiTechYun
2018/03/05
1.8K0
序列预测问题的简单介绍
r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
Glmnet是一个通过惩罚最大似然来拟合广义线性模型的包。正则化路径是针对正则化参数λ的值网格处的套索或弹性网络罚值计算的。该算法速度极快,可以利用输入矩阵中的稀疏性x。它符合线性,逻辑和多项式,泊松和Cox回归模型。可以从拟合模型中做出各种预测。它也可以适合多响应线性回归。
拓端
2020/08/17
1.5K0
r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
用交叉验证改善模型的预测表现(适用于Python和R)
原文作者: Sunil Ray 翻译:王鹏宇 我一直对数据界的编程马拉松(Hackathons)保持关注。通过对比排名榜初期和最终的结果, 我发现了一个有趣的现象:在初期排名较高的参赛者,在最终的验证环节往往地位不保,有些甚至跌出前 20 名。 猜猜是什么对引起了排名的剧烈变化?换句话说,为什么这些参赛者的模型在最终验证环节无法保证稳定性?让我们来探讨一下可能的原因。 预测模型为何无法保持稳定? 让我们通过以下几幅图来理解这个问题: 此处我们试图找到尺寸(size)和价格(price)的关系。三个模型各自做
机器学习AI算法工程
2018/03/13
1.8K0
简单易学的Linux指令(能解决95%以上问题)
Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。
用户6367961
2019/10/28
5030
简单易学的Linux指令(能解决95%以上问题)
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据|附代码数据
最近我们被客户要求撰写关于高维数据惩罚回归方法的研究报告,包括一些图形和统计输出。
拓端
2023/04/12
8250
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据|附代码数据
最近我们被客户要求撰写关于高维数据惩罚回归方法的研究报告,包括一些图形和统计输出。
拓端
2023/05/09
6690
ORA-01461问题的对比测试
昨天生产环境有个严重问题,报了ora-01461的错误,这个问题看似应该是开发那边的问题,但dba这边也得提供一些信息,自己模拟测试了一把。 为问题的排查也提供了一些帮助。 这个问题可以使用一下场景来对比测试。 --》场景 #1 使用关键字values来插入。 using key word “values” to insert. SQL> Declare vx Varchar2(32767); Begin For i In 1..3000 Loop vx:=vx||
jeanron100
2018/03/13
7200
R语言进行机器学习方法及实例(一)
  机器学习的研究领域是发明计算机算法,把数据转变为智能行为。机器学习和数据挖掘的区别可能是机器学习侧重于执行一个已知的任务,而数据发掘是在大数据中寻找有价值的东西。 机器学习一般步骤 收集数据,将数据转化为适合分析的电子数据 探索和准备数据,机器学习中许多时间花费在数据探索中,它要学习更多的数据信息,识别它们的微小差异 基于数据训练模型,根据你要学习什么的设想,选择你要使用的一种或多种算法 评价模型的性能,需要依据一定的检验标准 改进模型的性能,有时候需要利用更高级的方法,有时候需要更换模型 机器学习算法
用户1680321
2018/04/27
3.4K0
R语言进行机器学习方法及实例(一)

相似问题

SensoMineR面板错误在对比中,对比只能适用于2级或2级以上的因素

111

对比只能适用于2级或2级以上的因素,尽管有两个级别。

14

对比只能适用于至少两个层次的因素。

10

使用lm建立回归模型时出现的错误(“对比度”中的错误<-`(`*tmp*`)对比只能适用于2级或2级以上的因素)

13

对比只适用于因素。

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文