ActiveRecord
Na Galipedia, a wikipedia en galego.
En informática, o patrón active record é un patrón de deseño que se soe 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 una 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 precio
(de tipo monetario o de dobre precisión) e existe a clase Parte
, o seguinte código
a = Parte.new a.nombre = "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, precio) VALUES ('Parte de exemplo', 123.45);
Da mesma maneira, a clase pódese emplear para consultar a base de datos:
b = Parte.find(:first, :conditions => ['nome = ?', nomecacharro])
creará un só obxecto a partir da primera 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 nombre = ? LIMIT 1;
Onde o parámetro posicional ?
reemprázase por nombrecacharro
.
Ó aplicar "save" ó obxecto gardado, o que Active Record realiza é ver se o obxecto existe para modificalo, do contrario agrega os datos á base de datos.
[editar] Véxase tamén
[editar] Ligazóns externas
- Descripció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