Junior — Middle
83
Реляциялық дерекқорда отбасы ағашын сақтау және көрсету үшін қандай әдіс немесе деректер құрылымын қолданар едіңіз?
Сұралған компаниялар
Hftlabs
AI-дан жауап
sobes.tech AI
Для хранения семейного дерева в реляционной базе данных часто используют структуру "Adjacency List" (список смежности). В таблице хранится каждая персона с указанием ссылки на родителя (например, поле parent_id).
Пример структуры таблицы:
| id | name | parent_id |
|---|---|---|
| 1 | Иван | NULL |
| 2 | Мария | 1 |
| 3 | Алексей | 1 |
Такой подход прост в реализации и позволяет строить дерево, рекурсивно запрашивая потомков или предков.
Для более сложных запросов можно использовать:
- Nested Sets — хранение левых и правых границ для быстрого поиска поддеревьев.
- Materialized Path — хранение пути к узлу в виде строки.
Но для большинства задач "Adjacency List" достаточно и хорошо поддерживается стандартными SQL-запросами.