Junior — Middle
Da li je moguće modelovati i sačuvati strukturu porodičnog stabla u relacijskoj bazi podataka?
sobes.tech АИ
Одговор од АИ
Да, структуру семейного дерева можно моделировать и сохранять в реляционной базе данных. Для этого обычно используют одну из следующих моделей:
- Иерархическая модель (Adjacency List) — каждая запись содержит ссылку на родителя:
CREATE TABLE Person (
Id INT PRIMARY KEY,
Name VARCHAR(100),
ParentId INT NULL,
FOREIGN KEY (ParentId) REFERENCES Person(Id)
);
-
Модель вложенных множеств (Nested Sets) — хранит интервалы для быстрого поиска потомков.
-
Материализованный путь (Materialized Path) — хранит путь от корня до узла в виде строки.
Иерархическая модель проще и чаще используется, но для сложных запросов по дереву могут потребоваться рекурсивные запросы или дополнительные индексы.