Встречается на собеседованиях • сегодня
Можно ли передать генеалогическое древо в реляционную базу данных
Да, можно. Для хранения иерархических данных в реляционных БД есть несколько подходов:
- Adjacency List (список смежности) - простейший способ, где каждый узел хранит ссылку на родителя:
sql
CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(100),
parent_id INT REFERENCES person(id)
);- Materialized Path (материализованный путь) - хранит полный путь от корня:
sql
CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(100),
path VARCHAR(255) -- например "/1/4/7/"
);- Nested Sets (вложенные множества) - сложнее для модификации, но эффективен для выборок:
sql
CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(100),
lft INT,
rgt INT
);Выбор зависит от частоты операций (чтение/запись) и сложности запросов. Для простых случаев подойдет Adjacency List, для сложных аналитических запросов - Nested Sets.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы