Fork me on GitHub

Single Table Inheritance (Наследование с единой таблицей)

Паттерн проектирования Single Table Inheritance

Паттерн проектирования Single Table Inheritance

Описание Single Table Inheritance

Представление всех классов из иерархии наследования в виде одной таблицы в БД, содержащей столбцы для всех полей различных классов.

Реляционные БД не поддерживают наследование, по этому, записывая данные об объектах в БД, мы вынуждены придумывать, как отобразить наследование в таблицах. Конечно, мы стараемся минимизировать JOIN'ы, которые мгновенно появятся, если наследование реализовывать несколькими таблицами в БД. Паттерн Single Table Inheritance (наследование с единой таблицей) записывает все поля всех классов иерархии в одну таблицу.

Использована иллюстрация с сайта Мартина Фаулера.

Источник