Если ваши вопросы формируют дерево, а не график, есть два распространенных способа представления иерархических данных в sql .
* * Модель модели списка смежности требует многократных самостоятельных объединений для поиска детей (детей ... детей). Если у вас есть ORM, например Hibernate, ORM позаботится о том, чтобы сделать достаточное количество самостоятельных соединений, чтобы вернуть вопрос и ответы его дочернего элемента. Без ORM для этого вам придется либо динамически добавлять самостоятельные объединения в запрос, либо выполнять несколько запросов, по одному для каждой строки в предыдущем наборе результатов.
Модель вложенного набора , обычно приписываемая Джо Селько, позволяет получить целое дерево за один выбор. Но это означает, что добавление и удаление узлов более сложное и требует обновления всех строк.
В Списке Смежности у вас может быть таблица вопросов, подобная этой (id, question text, id_next_if_true, id_next_if_false)
. Это отличается от классического Списка Смежности, в котором вместо дочерних элементов, содержащих parent_id, родительский элемент содержит два дочерних идентификатора, или нуль.