Описание:
У меня есть случай в поиске решения проблемы. Правила поиска решения следующие:
Случай 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).
Мой вопрос:
пожалуйста, смотрите дерево решений по следующей ссылке Вот.
Надпись:
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 |
-----------------------------------------------------
И так далее….
Затем вы можете выполнить 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 *.