Это мой Mysql базы данныхПолучить иерархические данные из базы данных MySql
╔════╦═══════════╗
║ ID ║ Parent_ID ║
╠════╬═══════════╣
║ 1 ║ 0 ║
╠════╬═══════════╣
║ 2 ║ 1 ║
╠════╬═══════════╣
║ 3 ║ 1 ║
╠════╬═══════════╣
║ 4 ║ 3 ║
╠════╬═══════════╣
║ 5 ║ 4 ║
╚════╩═══════════╝
То, что я хочу добиться:
При выполнении поиска пользователя для ID 1, я хочу, чтобы получить все те элементы, чьи Parent_ID - это 1, а также все те ID, у которых есть как их родитель или великий родитель или великий родитель и так далее.
или просто все потомки ID 1.
Пример:
, если поиск пользователей для 1, алгоритм должен давать результата
{2,3,4, 5} - 4,5, потому что 1 - их великий великий родитель., если поиск пользователей для 2, алгоритм должен давать пустой результат {} как ни один элемент не имеют 2 как parent_id
, если поиск пользователей для 3, алгоритм должен дать результат {4,5} - - 5, потому что 3 - его великий родитель.
Что такое хороший способ сохранения и извлечения этих типов данных из базы данных?
Я использую Java и MySQL.
Спасибо.
Этот вопрос в нем присутствует форма является слишком широкой. Я рекомендую прочитать это: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ – e4c5
@DavidWallace ... или 4 в этом отношении. –
@DavidWallace OP не знал, что он должен быть рекурсивным, поэтому вопрос – Joanvo