Спадкування із спільною таблицею (шаблон проєктування)Спадкування зі спільною таблицею (інша назва Наслідування з одною таблицею, англ. Single Table Inheritance) — шаблон проєктування, який пропонує зберігати ієрархію наслідування класів у вигляді однієї таблиці. ОписОскільки реляційні бази даних не підтримують спадкування, потрібно придумати спосіб відображення такої ієрархії в сховищі. Рішенням буде зберігати всю ієрархію в одній таблиці. Тоді колонками у такій таблиці будуть усі поля всіх класів ієрархії. Застосування
Переваги та недолікиПереваги
Недоліки
РеалізаціяНехай дана ієрархія об'єктів. public class Player
{
public string Name { get; set; }
}
class Footballer : Player
{
public string Club { get; set; }
}
class Cricketer : Player
{
public int BattingAverage { get; set; }
}
Тоді у сховищі ці об'єкти представлятимуться однією таблицею. class PlayerTable
{
// поле необхідне, щоб розрізняти тип в ієрархії
public int Type { get; set; }
public string Name { get; set; }
public string Club { get; set; }
public int BattingAverage { get; set; }
}
Див. також
Джерела |