ActiveRecord

ActiveRecord
Шаблон проектирования
ActiveRecord

ActiveRecord (AR) — шаблон проектирования приложений, описанный Мартином Фаулером в книге «Patterns of Enterprise Application Architecture» (англ. Шаблоны архитектуры корпоративных приложений). AR является популярным способом доступа к данным реляционных баз данных в объектно-ориентированном программировании.

Содержание

Общий принцип работы Active Record

Пусть существует таблица в базе данных. Для данной таблицы создаётся специальный класс AR, являющийся отражением (представлением) таблицы, таким образом, что:

  • каждый экземпляр данного класса соответствует одной записи таблицы;
  • при создании нового экземпляра класса (и заполнении соответствующих полей) в таблицу добавляется новая запись;
  • при чтении полей объекта считываются соответствующие значения записи таблицы баз данных;
  • при изменении (удалении) какого-либо объекта изменяется (удаляется) соответствующая ему запись.

Реализация

Реализация концепции AR существует во многих средах разработки для различных языков программирования. Например если в базе данных есть таблица parts с полями name (string type) и price (number type), и шаблон Active Record реализован в классе Part, то следующий псевдокод:

part = new Part()
part.name = "Sample part"
part.price = 123.45
part.save()

создаст новую запись в таблице parts с данными значениями, и будет примерно соответствовать SQL команде

INSERT INTO parts (name, price) VALUES ('Sample part', 123.45);

С другой стороны, класс может быть использован для запросов к базе данных:

b = Part.find_first("name", "gearbox")

Этот код создаст новый экземпляр класса Part, основанный на данных первой найденой записи в таблице parts у которой поле name равно "gearbox".

Команда SQL может быть подобна одной из показанных ниже, в зависимости от реализации SQL в конкретной базе данных:

SELECT * FROM parts WHERE name = 'gearbox' LIMIT 1; -- MySQL or PostgreSQL

или

SELECT * FROM parts WHERE name = 'gearbox' AND rownum < 2; -- Oracle

или

SELECT TOP 1 * FROM parts WHERE name = 'gearbox'; -- Microsoft SQL Server

Примеры реализации: Yii[1] и Kohana для PHP. Следует отметить фреймворк CodeIgniter, который имеет встроенный класс ActiveRecord, являющийся конструктором запросов к базе данных, но не являющийся примером реализации шаблона Active Record.

Хороший пример реализации данного шаблона проектирования на языке программирования ruby — ActiveRecord.

Примечания

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "ActiveRecord" в других словарях:

  • ActiveRecord — Saltar a navegación, búsqueda Patrón ActiveRecord Obtenido de ActiveRecord …   Wikipedia Español

  • ActiveRecord — * Active record pattern is a computer science concept, seen in enterprise application design. * ActiveRecord (Rails) is the active record pattern implementation for Ruby on Rails. * ActiveRecord (Castle) is the active record pattern… …   Wikipedia

  • ActiveRecord (Castle) — ActiveRecord is an implementation of the active record pattern for the Microsoft .NET framework. It represents a row in the database with an ActiveRecord instance, and the static methods act on all rows. It is free, open source software that is… …   Wikipedia

  • ActiveRecord (Rails) — ActiveRecord is a Ruby library that implements the like named object relational mapping (ORM) pattern described by Martin Fowler:It creates a persistable domain model from business objects and database tables, where logic and data are presented… …   Wikipedia

  • Patrón ActiveRecord — Saltar a navegación, búsqueda En ingeniería informática, el patrón active record es un patrón de diseño que se suele dar en las aplicaciones empresariales. Active Record es un enfoque al problema de acceder a los datos de una base de datos. Una… …   Wikipedia Español

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

  • Rails — Ruby on Rails RoR Standard Seite …   Deutsch Wikipedia

  • Ruby On Rails — RoR Standard Seite …   Deutsch Wikipedia

  • Ruby on Rails — RoR Standard …   Deutsch Wikipedia

  • Rubyonrails — Ruby on Rails RoR Standard Seite …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»