1

我的应用程序需要部分通过编码时未知的逻辑规则处理测量数据,并将由用户手动输入。这种规则的一个例子是

IF (Column_3 < 4.5) AND ((Column_5 > 3.2) OR (Column_7 <= 0)) THEN 结果 = 2

其中基本比较和包围的数量是先验的,未知的。

这导致了一个设计问题:允许用户在 GUI 中输入此信息的最有效方式是什么?如何以最佳方式在我的程序中表示此信息以便实际计算整个 IF 子句?实际上,我想在 SQL 数据库中表示规则,所以我需要一个特定的数据结构。

谢谢大家的热心帮助!

4

1 回答 1

1

关于 GUI,我对在文本区域框中输入数据感到满意。除非您的常见情况超过 2-3 行,否则应该没问题。

数据结构可以类似于以下设计:

Base_Conditions 表

  • ID
  • 左操作数
  • 运算符代码 (> = <)
  • 右操作数

逻辑条件表

  • ID
  • Left_condition_id
  • Left_condition_type(“1”表示基本条件,“2”表示另一个逻辑条件)
  • Operator_code(和/或)
  • Right_condition_id
  • Right_condition_type

规则表

  • ID
  • Condition_id
  • 结果动作

要将条件存储在关系数据库中,数据结构将类似于以下内容:

Base_Conditions

  • [1, Column_3, <, 4.5]
  • [2, Column_5, >, 3.2]
  • [3, Column_7, <=, 0]

逻辑条件

  • [1, 2, 1, 或, 3, 1]
  • [2, 1, 1, 与, 1, 2]

规则

  • [1, 2, "结果 = 2"]
于 2013-10-26T16:50:45.033 回答