AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 8451
Accepted
kevinskio
kevinskio
Asked: 2011-11-28 14:11:26 +0800 CST2011-11-28 14:11:26 +0800 CST 2011-11-28 14:11:26 +0800 CST

数据库中的决策表:一个有效的解决方案?

  • 772

我必须扩展使用 Oracle 11g 处理法律案件的 .Net 4/C# 案件管理应用程序。

我的预算很少,我在 Oracle 方面的经验和一个非常初级的 C# 开发人员可以完成这项工作。附加模块将由不超过 20 人在 Intranet 上使用。

现有的规则一般是这样的:

  • 为了完成一个操作,表中必须存在属性 a、属性 b、属性 c,并且与必须验证新插入的表具有明确定义的关系
  • 对于法律案件,新的业务规则更像是“一切都是例外”,因为其他表中的数据条目可能会或可能不会影响基于未知条件的未来交易的结果,因此更正式地重述

现有应用程序使用 Microsoft Workflow 来实施业务规则。这已被证明是笨拙的,对我们来说几乎无法使用。Drools 及其商业等价物同样复杂,无法实现让管理者了解其业务逻辑的目标。

  • 如果用户无需阅读 C# 注释或代码就可以在报告中看到业务逻辑,那将是一个好处。
  • 无需关闭 Web 应用程序即可快速添加或禁用逻辑
  • 鉴于我们的预算和技能有限,实施起来相当容易

这让我想起了将业务逻辑作为一系列决策表保存在数据库中的老式想法。这仍然是这样做的,还是认为在应用程序中保留业务逻辑的效率明显更好?

编辑:工作流作为服务实现。我的理解是它针对的是长时间运行的工作流程。在我们的例子中,用户按下保存按钮,工作流运行。我们的问题是
- 在我们的机器上开发非常缓慢、冻结、崩溃
- 难以调试
- 工作流管理器有时会无缘无故地抛出几个小时的错误
- 触摸一个工作流,你必须更改其他 14 个文件
- 应用程序对用户来说很慢,我们已经将其中的一部分追溯到工作流程。

在数据库中进行验证开始看起来不错,因为验证全部基于数据库中的数据。
@catcall 有 10 或 12 名律师不使用该应用程序,但有 8 或 10 名管理员进行数据输入。
我们刚刚完成桌面升级,但老板认为程序员承包商的设备不应该比员工更好。因此,具有 4 个内核和 3 GB 内存的 Windows XP 是我们能做的最好的。我将调查是否有业务逻辑类型的任何分类。其中一些可以在应用程序中更有效地完成。其他类型可能更容易在数据库端更改和配置。

best-practices oracle-11g-r2
  • 1 1 个回答
  • 831 Views

1 个回答

  • Voted
  1. Best Answer
    Mike Sherrill 'Cat Recall'
    2011-11-29T01:10:40+08:002011-11-29T01:10:40+08:00

    附加模块将由不超过 20 人在 Intranet 上使用。

    当您谈论法律应用时,“人”是一个模糊的术语。支持 20 名律师与支持 1 名律师、4 名律师助理和 15 名员工有很大不同。

    对于法律案件,新的业务规则更像是“一切都是例外”

    这就是原因之一。在案例管理中,某些类型的事情只是确定性的。回复的时间、提交的截止日期,诸如此类。但管理规则是由律师为律师制定的。开发案例管理软件的公司都有律师来阅读程序规则(随着时间的推移而变化)并验证他们的软件是否符合规则。

    其中一些有很多律师。

    其他种类的事物受奇思妙想的支配。例如,一些案例管理包允许用户“模板化”他们的任务。在日历上输入诸如“证词”之类的内容也可能会记录一系列为准备证词而必须完成的早期任务。在多个不兼容的截止日期的压力下,任务链的某些部分会被丢弃或被忽视。

    现在,(终于)回答你的问题。. .

    数据库中的决策表是一个可行的解决方案。事实上,无论是存储在 Oracle 中还是应用程序代码中,决策表都构成了一个数据库。在应用程序代码中存储决策表有明显的折衷。

    但是数据库中的决策表对您来说可能不是一个可行的解决方案。如果我理解正确的话,您遇到的问题是您认为您可能需要将体系结构简化为决策表以消除(或至少大大减少)Microsoft Workflow 的使用。只有你们两个人和最少的预算,充其量也很难成功。

    我可以建议两件事。

    1. 您能否经济地生产基于决策表的替代系统原型?
    2. 你能在现有系统上使用更好的硬件吗?
    • 3

相关问题

  • Oracle 数据库的推荐 RAID 配置是什么?

  • 为什么操作系统身份验证被认为是 Oracle 数据库的低安全性?

  • 您如何对 Oracle 数据库更改进行版本控制?

  • 有没有办法允许代理连接在公共数据库链接中使用通过的身份验证?

  • 连接不同地理区域的数据库的最佳实践

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve