Active record
# Active record

En génie logiciel, le patron de conception (design pattern) active record (enregistrement actif en français) est une approche pour lire les données d'une base de données. Les attributs d'une table ou d'une vue sont encapsulés dans une classe. Ainsi l'objet, instance de la classe, est lié à un tuple de la base. Après l'instanciation d'un objet, un nouveau tuple est ajouté à la base au moment de l'enregistrement. Chaque objet récupère ses données depuis la base; quand un objet est mis à jour, le tuple auquel il est lié l'est aussi. La classe implémente des accesseurs pour chaque attribut.

## Ruby

Une des implémentations les plus utilisées est celle de la classe ActiveRecord de Ruby on Rails. Par exemple, s'il y a une table pieces définie par l'ensemble d'attributs {id, nom, prix}, et qu'il y a une classe Piece, le code Ruby suivant :

va créer un nouveau tuple dans la base avec les valeurs correspondantes, et est exactement équivalent à la requête SQL suivante :

Réciproquement, la classe peut être utilisée pour accéder à la base :

va créer un objet à partir du premier tuple de la base dont l'attribut nom est égal à la variable nompiece, et est exactement équivalent à la requête SQL suivante :

Le code aurait même pu être réduit :

## PHP

En PHP, les ORM Propel et Eloquent utilisent active record.

