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

Как представить наследование в базе данных

Наследование в БД можно реализовать несколькими способами:

  1. Единая таблица (Single Table Inheritance)
    Все подклассы хранятся в одной таблице с полями всех классов.
sql
CREATE TABLE vehicles (
    id INT PRIMARY KEY,
    type VARCHAR(20), -- 'Car', 'Truck'
    seats INT,        -- для Car
    capacity FLOAT    -- для Truck
);
  1. Таблица на класс (Class Table Inheritance)
    Каждый класс в своей таблице с ссылкой на родителя.
sql
CREATE TABLE vehicles (id INT PRIMARY KEY, model VARCHAR(50));
CREATE TABLE cars (vehicle_id INT REFERENCES vehicles(id), seats INT);
  1. Таблица на конкретный тип (Concrete Table Inheritance)
    Каждый подкласс в отдельной таблице со всеми полями.

Плюсы/минусы:

  • Единая таблица: проще запросы, но возможны NULL-значения
  • Таблица на класс: нормализованная структура, но сложнее JOIN-запросы
  • Конкретные таблицы: дублирование полей, но лучшая производительность для конкретных типов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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