2017-07-02 64 views
0

主要问题:
我们有客户,也许每年收入超过2个米利翁交易双输入系统/ AKA(日刊)的 所以每年所有的交易将张贴到明年年初余额为单行为每个帐户。没有发布去年的任何期刊。 所以我的意思是每年都清楚地使用空的Transaction Journal数据库。
所以,我们需要了解第二种方法(单个数据库的所有年份) 例如添加栏要求Period_Year

单个数据库VS多个数据库ERP会计年度交易表?

可以去看两种途径这里:
1 - 多个数据库每年交易
2-单个数据库的所有交易通过添加Period_Year列

问题我集中在第一个方法(多数据库):
1-许多数据库如果客户拥有10年会计期间
2 - 如果旧年数据库修改它必须张贴到新年数据库。
3-如果客户端在线托管,那么通过托管服务提供商限制数据库数量
4-如果客户需要报告(2016 - 2018年),交叉查询可能会出现问题。

问题我集中在第二方法(单个数据库):
1-非常巨大的数据库大小。使我们的技术支持需要时间备份&维护
2-如果技术支持更新没有使用目标的期刊凭证Period_Year
它可能会破坏所有会计年度!
3-在UI/GUI层缓慢加载。
4-报告慢慢也。

我知道第二个方法,如果采用指数>>也许将是巨大的..

*所以,请告诉我哪些是很好的解决方案为:*

- 易于维护
- 高性能
- 数据库大小
-Cross查询
-GUI/UI响应
- 灵活的搜索& CRUD SQL(UPDATE,INSERT,DELETE)
-Reports &仪表盘

所以哪一个是好办法?单个或多个数据库?

问题已完全修改。请任何人集中相同的问题或需要给我 一些建议/技巧将不胜感激谢谢。

+1

您在第二种方法中列出的问题是组成问题。它们表示某些其他*错误,而不是您指示的表格大小。你的第一种方法只是为了掩盖这些问题并将其替换为其他问题,但实际上并没有解决这些问题。 – David

+1

问题和解决方案的哪些部分是C#没有数据库设计? –

+0

是吗?什么是好的解决方案?建立档案数据库?或第一种方法?或第二种方法或什么.. – user3717917

回答

0

您的问题涉及所谓的分区问题,您可能需要采取几种方法调查不同的策略以满足您自己的特定需求。根据我的经验,在类似的情况下处理类似数量的交易为一些客户提供更多的交易,因为没有必要实施分区,因为所有解决方案都会增加不必要的成本和复杂性。相反,所需要的只是实施索引和维护计划。

作为替代方案,您描述的分区方法可以使用SQL Server按年分区单个表的事务数据和索引,但该解决方案可能会很昂贵,因为它需要Enterprise SQL。

考虑到你正在考虑的两种解决方案,将你的表分成多个表不会减小数据库的大小。它至少会有相同的大小,因为如果你的单个表包含1 GB的数据拆分为两个,这意味着你将创建两个表,每个数据库各有1.5 GB,但数据库仍将为1 GB。事实上,它可能会使数据库变大,因为您需要在将用于将表连接在一起的列上创建附加索引。您还需要更复杂的逻辑才能跨多年查询和更新数据。

单表方法很可能是最好的方法。这将是最容易维护和发展的,并且具有最低的总体成本。使用数据库的正确索引和维护计划可以实现高性能和GUI响应。没有必要交叉查询表格。

+0

嗯是的,也许你是真实的和答案是好的,但ihate插入新的列名为附加当前的主键,所以如果我有交易文件包含这些列:分支,类型,数量这些3复合键必须添加年份列以使交易可以获得新的数字,但是对于目标年:(对于此的任何替代方案? – user3717917

+0

我不确定您的特定需求是什么。根据我的经验,每当我们处理财务或会计目的的交易时如果不是完整的日期和时间,则至少有一个日期列。您从不希望处于需要更新或删除特定时间段内的交易(可能是由于审计或发现欺诈)的情况,并且您可以事实上,几乎每个我创建的表,交易或其他表,都至少有最后修改日期,如果不是创建和最后修改的日期,则用于审计目的秒。 –

+0

你是否知道SAP/Oracle如何做到这一点......我真的无法搜索,但如果你有很好的方法并为我提供实时的想法将会很棒。谢谢 。 – user3717917

0

这取决于公司使用的会计惯例(由于交易方式以及何时开始交易),该国的法律规定声明该实体必须存在多长时间,以及年终时间(交易远期(货物出售或退货),交易回购(完全没有财务重量的货物,如贷款,转账分类账和金融工具),这也取决于数据库结构体系以及其交易应用到基地的频率 - 查看自上次应用恢复以来已建立了多少[非金融IT]期刊,并相应地运行“恢复截断”。

虽然'小'​​这些期刊可以气球和创造一个巨大的备份 - 已经看到了一个280Mb数据库在一夜之间变得3.8Gb,因为没有人“截短”并应用他们生成的事务日志 - 但它可以长时间运行并且一旦触发就不会中断 - 恢复耗时75分钟,再次变为280Mb!这方面的期刊与IT相关,并且是系统记录要对“基础”应用哪些更改的方式。最多应该有一个较低的数字,而且系统的速度和尺寸会降低。如何做到这一点取决于数据库 - 在这里作为例子 https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_backup_restore_jrnaftbackup

这个截断是什么不切断数据,但清理了没有引用回到'基',但系统还没有被认为是一个漏洞的洞。实际上,你已经备份了空间。

至于期刊正在滚动 - 它取决于期刊及其内容的使用 - 如果为零,那么当期刊滚动时,包含的交易余额不是。查找0个余额期刊,在前一年或两年内没有交易。公司喜欢为特定项目使用生成报告财务期刊 - 但在该项目完成后继续存在,但是为空。其他人创建一个'面具'。杂志报道系统覆盖交易完全是另一个方面 - 我设计的一个系统将期刊掩码扩展到38(即38!等级38x37x36x35x34x33x32x31 ...)集合组(7,5,12 ...),所以很好,如果如果使用了错误的报告日记代码,这是一场噩梦。

相关问题