Применение дерева решений в базе данных

Описание:

У меня есть случай в поиске решения проблемы. Правила поиска решения следующие:

Случай 1: IF T01 AND T02 AND T03 THEN S01

Случай 2: IF T04 THEN S02

Случай 3: IF T04 AND T05 AND T06 THEN S03

Чтобы отобразить вопросы по этому вопросу, установите на основе дерева решений. во время задачи 1 (T1) задается ответ «да» или «нет». если у вас есть проблемы, выберите «да». если у него нет этой проблемы, то выбираем ответ «нет». с последующим заданием вопроса о следующей проблеме, пока не будет найдено решение (S).

Мой вопрос:

  1. как применить правило или дерево решений в базе данных?
  2. есть ли другие способы найти решение (S) кроме вопроса
    проблемы должны быть последовательностью, основанной на дереве решений?

пожалуйста, смотрите дерево решений по следующей ссылке Вот.

Надпись:

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

Спасибо

0

Решение

Это может быть достигнуто с помощью чего-то вроде:

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

И так далее….

Затем вы можете выполнить SQL-запрос на основе указанной проблемы / проблемы. Результат дает вам указания для нового вопроса. Где снова вы запрашиваете для следующего шага.

0

Другие решения

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 *.

0

По вопросам рекламы [email protected]