在数据库中应用决策树

Applying the decision tree in the database

描述:

我有一个寻找问题解决方案的案例。求解规则如下:

Case 1: IF T01 AND T02 AND T03 THEN S01

Case 2: IF T04 THEN S02

Case 3: IF T04 AND T05 AND T06 THEN S03

要显示有关此事的问题,请根据决策树进行设置。在问题1(T1)问的时候,然后有一个是或否的答案。如果有问题,选一个'yes'。如果没有这个问题,则选择答案'no'。然后询问下一个问题,直到找到解决方案 (S)。

我的问题:

  1. 如何在数据库中应用规则或决策树?
  2. 是否有其他方法可以找到解决方案(S)但是问题 问题必须是基于决策树的序列?

请看下面的决策树 link here.

图片说明:

T = trouble/problem; 
S = solution; 
Y = if answer is YES; 
N = if answer is NO; 

谢谢

这可以通过以下方式实现:

-----------------------------------------------------
| decisionId | ifTrueDecisionId | ifFalseDecisionId | 
=====================================================
| T01        | T02              | T04               |
-----------------------------------------------------
| T02        | T03              | S0                |
-----------------------------------------------------
| T03        | S1               | S0                |
-----------------------------------------------------
| T04        | T05              | S0                |
-----------------------------------------------------

等等....

然后您可以根据 Trouble/Problem 所述进行 SQL 查询。结果为您提供了新问题的指导。您又在哪里查询下一步。

SELECT
  ...,
  IF(T01,
    IF(T02,
      IF(T03,
        S01,
        S0
      ),
      S0
    ),
    IF(T04,
      IF(T05,
        IF(T06,
           S03,
           S0,
        ),
        S02
      ),
      S0
    )
  ) AS some_field_alias
...

根据http://oi59.tinypic.com/24cw9ye.jpg

使用这个http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if

您可以在 mysql 查询中使用此逻辑。每个 T* 都可以是一个子请求以及 S*。