Active record
En informática, o padrón active record é un padrón de deseño que se adoita dar nas aplicación empresariais.
Active Record é un enfoque ó problema de acceder ós datos dunha base de datos. Unha fila na táboa da base de datos (ou vista) envólvese nunha clase, de maneira que se asocian filas únicas da base de datos con obxectos da linguaxe de programación empregada. Cando se crea un destes obxectos, engádese unha fila á táboa da base de datos. Cando se modifican os atributos do obxecto, actualízase a fila da base de datos. A clase envoltorio implementa métodos de acceso para cada columna da táboa ou vista.
Unha das implementacións máis populares pódese atopar en Ruby on Rails. Por exemplo, se existe unha táboa chamada partes
coas columnas id
(clave primaria), nome
(de tipo varchar ) e prezo
(de tipo monetario o de dobre precisión) e existe a clase Parte
, o seguinte código
a = Parte.new a.nome = "Parte de exemplo" a.prezo = 123.45 a.save
creará unha nova fila na base de datos cos valores proporcionados, que vén a ser máis ou menos equivalente á seguinte sentenza en SQL:
INSERT INTO partes (nome, prezo) VALUES ('Parte de exemplo', 123.45);
Da mesma maneira, a clase pódese empregar para consultar a base de datos:
b = Parte.find(:first, :conditions => ['nome = ?', nomecacharro])
creará un só obxecto a partir da primeira fila da base de datos cuxa columna nome
sexa igual ós contidos da variable nomecacharro
, e vén sendo equivalente á sentenza:
SELECT * FROM partes WHERE nome = ? LIMIT 1;
Onde o parámetro posicional ?
substitúese por nomecacharro
.
Ó aplicar "save" ó obxecto gardado, o que Active Record realiza é ver se o obxecto existe para modificalo, do contrario agrega os datos á base de datos.
Véxase tamén
[editar | editar a fonte]Ligazóns externas
[editar | editar a fonte]- Descrición breve de Patterns of Enterprise Application Architecture por Martin Fowler (en inglés)
- Active Record Docs - Documentación de ActiveRecord con anotacións de usuarios (en inglés)
- Castle Project Active Record é unha implementación para a plataforma .NET (Microsoft o Mono)
- ActiveRecord en Ruby on Rails - Sección do 'wiki' de Ruby on Rails sobre ActiveRecord