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
  • Left_operand
  • Operator_code (> = <)
  • 右オペランド

論理条件テーブル

  • ID
  • Left_condition_id
  • Left_condition_type (基本条件の場合は「1」、別の論理条件の場合は「2」)
  • Operator_code (および/または)
  • Right_condition_id
  • Right_condition_type

ルール表

  • ID
  • Condition_id
  • 結果アクション

条件をリレーショナル DB に格納するには、データ構造は次のようになります。

Base_Conditions

  • [1, 列_3, <, 4.5]
  • [2, 列_5, >, 3.2]
  • [3, 列_7, <=, 0]

論理条件

  • [1, 2, 1, または, 3, 1]
  • [2, 1, 1, AND, 1, 2]

ルール

  • [1, 2, "結果 = 2"]
于 2013-10-26T16:50:45.033 に答える