会计软件核心基础结构所需的建议

ahmed_one

会员
已加入
2012年11月29日
留言内容
23
编程经验
Beginner
亲爱的大家,

我正处于C#开发的初级阶段。目前,我正在使用以下软件开发基于凭证的会计软件:

1- Visual Studio 2010
2-编程语言:C#
3-数据库:MySql 5

目前,数据库结构如下:

1.accAccounts(用于保存有关会计科目表的信息,例如帐户代码,名称,子公司或明细,未结余额等)

2.vMaster(用于Voucher主机信息,如凭证编号,日期,凭证类型(即付款/收据/日记帐),收款人姓名,备注,借记帐户,贷方帐户,金额)

3. vDetails(有关凭证明细信息,用于进一步分配费用/资产,使用AccCode,借方金额,贷方金额)

4. TranPost(来自vMaster和vDetails的所有交易都将发布在此表中)

总体思路是这样的:用户创建新的凭证,输入付款/收据/日记帐等的交易记录。然后保存凭证。经主管批准后,凭单将vMaster和vDetails限制为进一步编辑,凭证将过帐,所有交易都将复制到TransPost。

当然,如果TransPost表中有可用数据,则可以生成试算表,资产负债表&损益表将以此为基础。

现在我的问题是:这是开发会计软件的正确方法吗?我主要担心年底结账流程。我应该在每个会计期间使用相同的vMaster / vDetails / TransPost表,还是应该为每个期间创建新表?假设每年交易50-80k。推荐的方法是什么?对于accMaster,我认为它应该是“所有会计期间”的全局表,如果是,则还需要在“主/明细”结构中保持每年不同的期初余额。

如前所述,我是一个初学者,到目前为止,我所学到的是通过“边做边学”的方法以及在此类论坛中所有经验丰富的程序员的指导。因此,我再次需要指导。

期待所有硕士特别是会计软件开发人员的建议。

提前致谢

艾哈迈德
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,499
地点
悉尼,澳大利亚
编程经验
10+
我应该在每个会计期间使用相同的vMaster / vDetails / TransPost表,还是应该为每个期间创建新表?
绝对应该使用相同的表。您始终将相同的表用于相同的数据,如果您需要能够按日期过滤数据,则可以添加一个日期列。如果需要单个财政年度的数据,则可以在查询的WHERE子句中指定该日期范围。
 

ahmed_one

会员
已加入
2012年11月29日
留言内容
23
编程经验
Beginner
绝对应该使用相同的表。您始终将相同的表用于相同的数据,如果您需要能够按日期过滤数据,则可以添加一个日期列。如果需要单个财政年度的数据,则可以在查询的WHERE子句中指定该日期范围。

非常感谢jmcilhinney的迅速响应,但我想知道每个财政年度50-80k的数据量。如果我们使用相同的表格,这是否会使某个阶段的处理速度变慢,可以说在4-5个财政年度的数据之后?

如何为“财政年度”而不是“日期”字段添加一列,并为每个交易标记金融年度,例如2008-09、2009-10等?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,499
地点
悉尼,澳大利亚
编程经验
10+
非常感谢jmcilhinney的迅速响应,但我想知道每个财政年度50-80k的数据量。如果我们使用相同的表格,这是否会使某个阶段的处理速度变慢,可以说在4-5个财政年度的数据之后?

如何为“财政年度”而不是“日期”字段添加一列,并为每个交易标记金融年度,例如2008-09、2009-10等?

是的,那行得通。我可能会将其简化为一个数字,然后在该列上放置一个索引。您基本上可以同时执行这两个操作,即具有日期字段和会计年度字段,然后从第一列开始计算第二列。我不确定MySQL,但SQL Server允许您指定计算值是否持久化。您可以这样做,以确保在初始插入后不会更改的值,在这种情况下就是这种情况。
 

ahmed_one

会员
已加入
2012年11月29日
留言内容
23
编程经验
Beginner
是的,那行得通。我可能会将其简化为一个数字,然后在该列上放置一个索引。您基本上可以同时执行这两个操作,即具有日期字段和会计年度字段,然后从第一列开始计算第二列。我不确定MySQL,但SQL Server允许您指定计算值是否持久化。您可以这样做,以确保在初始插入后不会更改的值,在这种情况下就是这种情况。

再次感谢你的回复。

我一定会遵循您的指导方针。但是数据量呢?如果我们使用一张表进行多年的事务处理(假设每年进行50-80k次事务处理),是否会导致数据库操作的处理速度变慢?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,499
地点
悉尼,澳大利亚
编程经验
10+
再次感谢你的回复。

我一定会遵循您的指导方针。但是数据量呢?如果我们使用一张表进行多年的事务处理(假设每年进行50-80k次事务处理),是否会导致数据库操作的处理速度变慢?

像MySQL这样的企业级数据库可以处理数百万条记录。
 

ahmed_one

会员
已加入
2012年11月29日
留言内容
23
编程经验
Beginner
嗨,继此线程之后,我现在添加了ID为YearDesc的Table FYear。是否可以使用诸如应用程序级别/全局变量之类的东西来保存特定年份的ID并将其插入到创建的每个交易中?

我的想法是:
在“财政年度表”中输入多个财务年度,例如:
ID YearDesc
1 2007-08
2 2008-09
3 2009-10
4 2010-11
5 2011-12
等等

并创建一个登录屏幕,用户可以在其中输入用户名/密码,同时还从组合框中选择财务年度/ ID。然后在应用程序中,该Fin Year / ID将用于验证每个条目以及插入用户选择的年份的记录?

谢谢

艾哈迈德
 

ahmed_one

会员
已加入
2012年11月29日
留言内容
23
编程经验
Beginner
您是否真的需要一个财政年度的表格?您不能只在另一张桌子中存储一年吗?

这样,用户可以从组合框中选择“财政年度”,而“管理员”可以使用“活动”或“活动中”标记来限制对数据输入用户的访问,因为他们错误地输入了错误的财政年度。

这就是为什么我创建了一个表,并且需要一个全局/应用程序级别的变量来存储用户从组合框中选择年份ID的原因。
 
最佳 底部