Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 这属于数据库还是代码?_Database - Fatal编程技术网

Database 这属于数据库还是代码?

Database 这属于数据库还是代码?,database,Database,我有一个数据库,其中包含存款表(安全存款、宠物存款等),在某些情况下,这些存款需要减少,即有人购买补充保险。我是否应该有一个名为say,alter_depositions的表,它将包含减少的条件以及金额,或者这是属于应用程序代码的业务逻辑 提前谢谢 您需要确定的是这些情况发生变化的可能性。将它们放入数据库并在其周围包装一个UI将使它们更容易更改,特别是如果有一些管理员类型的用户不是维护程序员。您需要确定这些条件可能会更改的可能性。将它们放入数据库并在其周围包装一个UI将使它们更容易更改,特别是如

我有一个数据库,其中包含存款表(安全存款、宠物存款等),在某些情况下,这些存款需要减少,即有人购买补充保险。我是否应该有一个名为say,alter_depositions的表,它将包含减少的条件以及金额,或者这是属于应用程序代码的业务逻辑


提前谢谢

您需要确定的是这些情况发生变化的可能性。将它们放入数据库并在其周围包装一个UI将使它们更容易更改,特别是如果有一些管理员类型的用户不是维护程序员。

您需要确定这些条件可能会更改的可能性。将它们放入数据库并在其周围包装一个UI将使它们更容易更改,特别是如果有一些管理员类型的用户不是维护程序员。

如果简化规则可以推广,那么将其作为业务逻辑添加到应用程序代码中最有意义。
如果降价是针对个人的一次性付款,那么设置另一个表来捕获和存储它们可能是最好的答案。

如果降价规则可以推广,那么将其作为业务逻辑添加到应用程序代码中最有意义。
如果降价是针对个人的一次性付款,那么设置另一个表来捕获和存储它们可能是最好的答案。

对我来说,这类问题的经验法则是,您是否希望在运行时更改它而不关闭网站


如果您希望在不安排停机时间的情况下更新业务规则,那么您可能希望将其放入数据库中,否则,将其放入代码中,您将不得不安排停机时间并在更新网站代码之前通知用户。

对我来说,这类问题的经验法则是您是否希望在运行时更改它而不关闭网站


如果您希望在不安排停机时间的情况下更新业务规则,那么您可能希望将其放入数据库中,否则,将其放入代码中,在更新网站代码之前,您必须安排停机时间并通知您的用户。

在这种情况下,我喜欢尝试将规则归纳为尽可能基本的规则。所以你可能有一个平减规则,它可以减少x%。然后你们可能会有一个基于条件的规则,所以你们可以说,当平衡大于y时,减去x%

在您对规则进行通用化之后,我将以通用形式实现业务逻辑中的规则,并在您的数据库中存储当前活动的规则类型及其输入

您可以在不安排停机时间的情况下完成这项工作,加入新规则,应该像更新数据库一样简单,如果有新的规则类型,您可以部署新的代码段。当然,这取决于您的环境,我知道在.net中这应该是preety的直截了当

我在一个非常有趣的基于规则的处理系统上工作,我们基本上构建了一个And&Or操作数的二叉树,其运算符将返回true或false,如果树返回true,我们就执行操作。这一切都被序列化为Xml,这使得存储机制对规则类型及其数据需求不可知

编辑

基于规则的系统可能非常强大。我用它们来帮助定位分布在数千种不同库存中的小部件,并根据各种标准对购买小部件的最佳地点进行排名。我曾见过他们在零件上进行征服,例如在汽车行业,OEM喜欢在AM零件上竞争,但仅在某些情况下

您可能已经定义了一个规则的超集,当项目沿着链传递时,您可能会发现其他规则。规则可以由表达式和操作组成。表达式可以表示为子条件树,当您的操作运行时,这些子条件的计算结果为true或false

如果您使用.net,您实际上可以使用表达式树构建一个相当动态的系统,并动态创建lamba,它可以表示操作数和操作

有一些预先构建的规则引擎可以帮助快速启动,但我从来没有找到一个足够便宜或基本的引擎来满足我的需求


在我看来,这个概念的一个扩展就是工作流编程。因此,当存款进来时,比如说,在你的规则运行之后,存款的结果是>25%。在这种情况下,您需要员工批准此案例。工作流引擎可以封装这种类型的逻辑,并以比传统编码更流畅的方式表达它。但所有的事情都有很多缺点。每次我开始使用工作流引擎时,它最终都会因为各种原因而被破坏,但通常是因为我们的工作流太简单,无法证明学习引擎的成本是合理的。

在这种情况下,我喜欢尝试将规则概括为尽可能基本的规则。所以你可能有一个平减规则,它可以减少x%。然后你们可能会有一个基于条件的规则,所以你们可以说,当平衡大于y时,减去x%

在您对规则进行通用化之后,我将以通用形式实现业务逻辑中的规则,并在您的数据库中存储当前活动的规则类型及其输入

您可以在不安排停机时间的情况下完成这项工作,加入新规则,应该像更新数据库一样简单,如果有新的规则类型,您可以部署新的代码段。当然,这取决于您的环境,我知道在.net中这应该是preety的直截了当

我在一个非常有趣的基于规则的处理系统上工作,在这个系统中,我们基本上构建了一个And&Or操作的二叉树