在数据库中应用决策树
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)。
我的问题:
- 如何在数据库中应用规则或决策树?
- 是否有其他方法可以找到解决方案(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*。
描述:
我有一个寻找问题解决方案的案例。求解规则如下:
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)。
我的问题:
- 如何在数据库中应用规则或决策树?
- 是否有其他方法可以找到解决方案(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*。