Наследование с единой таблицей (Single Table Inheritance) - Разработка модуля для хранения и управления документами в электронном виде
Документы должны иметь различные типы, которые определяют логику их поведения. Должна быть возможность создать новый тип документа и определить его логику. Но создание нового типа не должно создавать новую таблицу: программисту необходимо лишь добавить класс-наследник абстрактного документа. Здесь появляется проблема, связанная с ORM: как отобразить на реляционной базе данных отношение наследования классов в ООП?
Для решения это проблемы обычно используется паттерн проектирования STI (Single Table Inheritance). Основной смысл заключается в добавлении к таблице БД строкового поля type, в котором хранится название класса. При получении записи будет создаваться объект класса, указанного в поле type. Ruby on Rails поддерживает данную технологию.
Реализация STI в разрабатываемом приложении сводится к внесению в миграцию создания таблицы documents строкового поля "type" и наследованию конкретных классов документов (например, Passport) от суперкласса Document (который и связан с таблицей documents).
Ниже проиллюстрирован пример работы STI.
- 1) Создается подкласс: 2) class Passport < document 3) # помещается любая специфичная логика 4) end 5) создается объект конкретного класса 6) passport = passport. new 7) объект сохраняется 8) passport. save
В базе данных в таблице documents при этом создается запись следующего вида:
Id |
Type |
1 |
Passport |
Если требуется получить документ с id = 1, выполняется командаdoc = Document. find(1)
Rails анализирует поле type таблицы и помещает в переменную doc объект типа Passport.
Похожие статьи
-
Среда Rails поддерживает работу с большинством современных баз данных, таких как MySQL, SQLite, PostgreSQL. Для этого используются различные адаптеры,...
-
Веб-фреймворк Ruby on Rails разработан на языке Ruby и является вторым по популярности по версии http://hotframeworks. com. Основными чертами фреймворка...
-
Разработка модели модуля с учетом архитектурных решений Полиморфные связи Документ может относиться к объектам различного типа, поэтому разумно...
-
Модуль должен поддерживать механизм состояний документов. На стадии разработки технического задания были выделены следующие состояния: - Черновик...
-
Анализ требований к модулю электронных документов Сущность документа Разрабатываемый модуль должен вводить в приложение новую сущность -- документ,...
-
Тестирование - Разработка модуля для хранения и управления документами в электронном виде
С запуска нового проекта на Rails среда создает для него всю необходимую тестовую инфраструктуру. Фреймворк поддерживает следующие виды тестов: 1)...
-
Обзор паттерна MVC Впервые описал схему Model-view-controller (Модель-вид-контроллер) Трюгве Реенскауг, норвежский ученый из университета в Осло,...
-
Введение - Разработка модуля для хранения и управления документами в электронном виде
Актуальность Во многих современных системах автоматизированного управления бизнес-процессами предприятий возникает необходимость в организации и...
-
Flagship Docs представляет собой популярную систему управления документами, разработанную компанией RPI Web Tech Group. Данная система решает широкий...
-
Вид - Разработка модуля для хранения и управления документами в электронном виде
Представления в Ruby on Rails реализованы в виде Erb-шаблонов -- html-файлов со вставками кода на языке Ruby. Дополнительная логика, внедряемая в шаблон,...
-
Контроллер является связующим звеном между пользователем, представлением и моделью. Он получает запросы от пользователя, взаимодействует с моделью и...
-
Git - Разработка модуля для хранения и управления документами в электронном виде
Git -- распределенная система контроля версий, разработанная создателем ядра Linux Линусом Торвальдсом в 2005 году. Система быстро набрала популярность и...
-
Общие сведения о системах контроля версий При разработке программного обеспечения необходимо иметь подробную историю изменений в исходных кодах...
-
На рис. 4 представлена схема работы Rails-приложения. Рассмотрим ее подробнее: 1) клиент из браузера посылает запрос на сервер; 2) запрос обрабатывается...
-
В настоящее время существует множество систем управления информационными ресурсами предприятия (ECM - Enterprise content management ), предназначенных...
-
Назначение и функции программной системы Разработанная база данных "Библиотека" предназначена для использования в учреждениях библиотек. Основной...
-
Широкое распространение в операционной системе Windows имеет множество стандартных программ обеспечивающих работу устройств компьютера и служащих для...
-
Сравнение Git и SVN - Разработка модуля для хранения и управления документами в электронном виде
Аргументы в пользу Subversion: 1) централизованность системы позволяет не хранить на компьютере весь репозиторий, а лишь срез репозитория -- конкретную...
-
Еще одна причина выбрать git в качестве системы контроля версий -- сильное и профессиональное сообщество, возникшее на сайте GitHub (https://github....
-
Subversion - Разработка модуля для хранения и управления документами в электронном виде
Сайт: http://subversion. apache. org/ Subversion -- централизованная система контроля версий, распространяемая под свободной лицензией (Apache License)....
-
Связи между таблицами - Разработка информационной системы "Гостиница"
Все ранее созданные таблицы должны быть связаны между собой каким-либо определенным полем, называемым ключевым полем. Ключевое поле позволяет однозначно...
-
Каждая СУБД имеет особенности в представлении структуры таблиц, связей, определении типов данных и т. д. которую необходимо учитывать при проектировании....
-
Цель Работы - изучить одну из базовых концепций ООП, наследование классов в С++, заключающуюся в построении цепочек классов, связанных иерархически,...
-
Объекты области временного хранения классифицируются по предметным областям. Аутентичность исходным данным Заказчика в объектах DF , TD и R достигается...
-
Модель сущность-связь представлена в приложении 1. Структура таблиц Следует отметить назначение полей, которые встречаются во всех таблицах: - id --...
-
Цель Работы - использовать принципы архитектуры "Документ-Представление" для выборки и сохранения данных в файлах, а также взаимодействия элементов меню,...
-
Для разработки программного обеспечения использован язык Java. Разработка проводилась в среде Eclipse Ganymede 3.2. В качестве СУБД для тестирования...
-
Этапы проектирования и создания БД - Система управления базами данных
При разработке БД можно выделить следующие этапы работы. I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно...
-
Формы - Разработка информационной системы "Гостиница"
Главное предназначение формы в состоит в том, чтобы организовать удобную работу с данными (с понятным и приятным интерфейсом), чего нельзя добиться при...
-
Появление на рынке систем управления электронными документами - EDMS (Electronic Document Management Systems) вызвано стремлением сократить поток...
-
Сортировка данных Так как при сортировке данные таблицы будут изменены, то создала новый лист "Сортировка" и в нем вставила копию таблицы 1. Для этого...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Понятие Data Mining Средства Data Mining включают в себя очень широкий класс различных технологий и инструментов. Средства Data Mining на рынке...
-
Отчеты, Макросы, Модули - Разработка информационной системы "Гостиница"
Отчет - это форматированное представление данных, которое выводится на экран, в печать или файл. Они позволяют извлечь из базы нужные сведения и...
-
Таблицы СУБД Microsoft Access - Разработка информационной системы "Гостиница"
Таблицы - это основной объект базы данных, в котором хранятся все данные, имеющиеся в базе, а также структура базы (поля, их типы, свойства). База данных...
-
Корпуса интегральных микросхем должны удовлетворять ряду требований, обеспечивающих их надежную эксплуатацию. Корпус должен обладать достаточной...
-
Рассмотрим сформулированные основные требования для решения поставленной задачи. Функциональные требования: - Выбор пользователем частных критериев...
-
При разработке различных объектов и процессов в большинстве случаев требуется ввести более одной целевой функции. В этом случае, намного эффективней...
-
Режим WYSIWYG - Оформление выходных документов в электронных таблицах QUATTRO PRO
Режим WYSIWYG - это режим, в котором представление информации на экране QUATTRO PRO осуществляется в графической форме. Режим WYSIWYG действует на...
-
Работа с контентом Контент системы содержит как отдельные медийные составляющие - текст, таблицы, ссылки, графику, так и связанные между собой....
Наследование с единой таблицей (Single Table Inheritance) - Разработка модуля для хранения и управления документами в электронном виде