Active Record - это, в основном, шаблон, который отображает классы в таблицы реляционной базы данных. Объекты представляют строки в базе данных. Инфраструктура AR обрабатывает сохранение и загрузку этих объектов, генерируя соответствующие операторы SQL для каждого механизма базы данных.
* ** 1003 тысяча два * Пример
Database Table Active Record Class
----------------------- --------------------------
People > Person
----------------------- --------------------------
FirstName : varchar(40) > string FirstName
LastName : varchar(40) > string LastName
Фреймворк предоставляет вам общие методы для извлечения данных независимым от базы данных способом, который прекрасно интегрируется с языком программирования.
people = Person.GetAll()
, который генерирует и выполняет что-то вроде:
SELECT FirstName, LastName FROM People
Что он делает - читает структуру класса AR и выводит имена столбцов. Полученные данные также сопоставляются с классом таким же образом.
Основным преимуществом этого является то, что вы удаляете зависимость от одного ядра базы данных. Например, если вы решите переключиться с MySQL на SQLite, правильно кодированная среда AR может сделать это практически без изменений в существующем коде.
Недостатком, однако, является то, что вы находитесь в зависимости от конкретной AR-платформы, которую вы используете. Если он не генерирует правильный SQL в определенной ситуации или не поддерживает определенную функцию, вам, возможно, придется самостоятельно написать его, что противоречит цели независимости базы данных.