Наследование одной таблицы
Наследование одной таблицы — это способ эмулировать объектно-ориентированное наследование в реляционной базе данных . При сопоставлении таблицы базы данных с объектом на объектно-ориентированном языке поле в базе данных определяет, к какому классу в иерархии принадлежит объект. [ 1 ] Все поля всех классов хранятся в одной таблице, отсюда и название «Наследование одной таблицы». В Ruby on Rails поле таблицы под названием «type» идентифицирует имя класса . В Hibernate (Java) и Entity Framework этот шаблон называется иерархией таблиц на класс и иерархией таблиц (TPH) соответственно. [ 2 ] [ 3 ] а столбец, содержащий имя класса, называется столбцом дискриминатора.
Пример
[ редактировать ]идентификатор блога | Дискриминатор | URL | RSSURL |
---|---|---|---|
1 | Блог | https://blogs.example.com/pets | NULL
|
2 | RSSБлог | https://blogs.example.com/cars | https://blogs.example.com/cars.rss |
В таблице есть Url
который используется всеми блогами, но только блоги типа RssBlog имеют значение, присвоенное в RssUrl
столбец, другие строки имеют NULL
.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Фаулер, Мартин (2003). Шаблоны архитектуры корпоративных приложений . Фирменная серия Аддисона-Уэсли. Вклад Дэйва Райса, Мэтью Фёммела, Эдварда Хиетта, Роберта Ми и Рэнди Стаффорда. Аддисон-Уэсли. п. 278. ИСБН 0-321-12742-0 .
- ^ «Руководство. Реализация наследования с помощью EF в приложении ASP.NET MVC 5» . 21 января 2019 года . Проверено 3 ноября 2015 г.
- ^ Кинг, Гэвин; Бауэр, Кристиан; Андерсен, Макс Ридал; Бернар, Эммануэль; Эберсол, Стив (15 сентября 2010 г.). «Глава 9. Отображение наследования» . HIBERNATE — Реляционное сохранение для идиоматической Java . Графический дизайн Джеймса Кобба и Шайенн Уивер (Версия 3.5.6 – финальная редакция) . Проверено 3 ноября 2015 г.
Внешние ссылки
[ редактировать ]