Встречается на собеседованиях • сегодня
Как представить наследование в базе данных
Наследование в БД можно реализовать несколькими способами:
- Единая таблица (Single Table Inheritance)
Все подклассы хранятся в одной таблице с полями всех классов.
sql
CREATE TABLE vehicles (
id INT PRIMARY KEY,
type VARCHAR(20), -- 'Car', 'Truck'
seats INT, -- для Car
capacity FLOAT -- для Truck
);- Таблица на класс (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);- Таблица на конкретный тип (Concrete Table Inheritance)
Каждый подкласс в отдельной таблице со всеми полями.
Плюсы/минусы:
- Единая таблица: проще запросы, но возможны NULL-значения
- Таблица на класс: нормализованная структура, но сложнее JOIN-запросы
- Конкретные таблицы: дублирование полей, но лучшая производительность для конкретных типов

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