用于复杂嵌套if-then规则的用户输入的数据结构

时间:2013-10-23 14:55:52

标签: user-interface if-statement logic

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

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

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

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

谢谢大家的帮助!

1 个答案:

答案 0 :(得分:1)

关于GUI,我觉得在文本区域框中输入数据很舒服。 除非您的常见条件超过2-3行,否则应该没问题。

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

Base_Conditions表

  • ID
  • Left_operand
  • Operator_code(> =<)
  • Right_operand

Logical_conditions表

  • ID
  • Left_condition_id
  • Left_condition_type(基本条件为“1”或其他逻辑条件为“2”)
  • Operator_code(和/或)
  • Right_condition_id
  • Right_condition_type

规则表

  • ID
  • Condition_id
  • Result_action

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

Base_Conditions

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

Logical_conditions

  • [1,2,1,OR,3,1]
  • [2,1,1,AND,1,2]

规则

  • [1,2,“Result = 2”]