Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > databases > Creando componentes para DBIx::Class

Creando componentes para DBIx::Class

DBIx::Class es una librería Perl que permite gestionar objetos sobre una base de datos relacional (ORM).

Su diseño permite añadir componentes a una clase DBIC, los cuales son módulos que pueden sobrecargar un método concreto ó añadir otros, dado que se dispone de un sistema de herencia más controlado proporcionado por Class::C3.

Componentes deseables

Procedentes de un antiguo desarrollo para la empresa surgieron los siguientes componentes, implementados, por cierto, de forma muy similar a los que proporciona DBIC .

DeletedMark

Cambia la forma en que se borra un objeto de la base de datos, pasando del borrado físico a establecer una marca en una columna añadida al respecto.

  • Atributos añadidos:
    • Columna _deleted de tipo numérico que responde a la pregunta de si el objeto está borrado ó no.
  • Métodos sobrecargados:
    • delete: activa la marca de borrado
    • insert: se asegura de que la marca de borrado esté desactivada.
    • search: recupera sólo los que no están borrados.
  • Métodos añadidos:
    • undelete: desactiva la marca de borrado de un objeto.

History

Proporciona un registro automágico de los cambios efectuados sobre un objeto.

  • Atributos añadidos:
    • Nueva tabla 'History' con los siguientes atributos:
      • Identificador del objeto destino de la operación (nda_target tal vez).
      • Marca de tiempo
      • Clase de operación: create, delete y/ó update.
      • Autor: identificador del usuario que ha efectuado la operación.
      • Registro: Datos del objeto empaquetados como un texto sin longitud fija (útil para posteriores operaciones de reconstrucción ó para ampliar los informes de uso); en realidad se conservan dos conjuntos de datos dependiendo de la operación:
        • before: contenido del objeto antes de actuar sobre él.
        • after: contenido del objeto después de la operación.
  • Métodos sobrecargados:
    • delete: se actualiza el campo before.
    • insert: se actualiza el campo after.
    • update: se actualizan los campos before y after.

Ownership

Usando una mezcla de identificación y autorización de usuarios permite el acceso únicamente a un conjunto de objetos sobre los que tienes derecho de acceso.

  • Atributos añadidos:
    • Tabla 'users'
    • Tabla 'roles'
    • Tabla 'acl'
  • Métodos sobrecargados:

  • Métodos añadidos: