Встречается на собеседованиях • сегодня

Какую будешь делать структуру для передачи генеалогического древа в реляционную базу данных

Для хранения генеалогического древа в реляционной БД оптимально использовать таблицу Person с рекурсивной связью:

sql
CREATE TABLE Person (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    birth_date DATE,
    gender CHAR(1),
    father_id INT,
    mother_id INT,
    FOREIGN KEY (father_id) REFERENCES Person(id),
    FOREIGN KEY (mother_id) REFERENCES Person(id)
);

Ключевые особенности:

  • Рекурсивные внешние ключи на родителей
  • Поддержка любых уровней вложенности
  • Простота запросов (например, найти всех детей человека)

Альтернатива для сложных запросов - таблица связей с типом отношения (родитель/ребенок/супруг).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы