Rose::DB::Object::Std::Metadata.3pm

Langue: en

Autres versions - même langue

Version: 2008-12-01 (ubuntu - 08/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Rose::DB::Object::Std::Metadata - Standardized database object metadata.

SYNOPSIS

   use Rose::DB::Object::Std::Metadata;
 
   $meta = Rose::DB::Object::Std::Metadata->new(class => 'Product');
   # ...or...
   # $meta = Rose::DB::Object::Std::Metadata->for_class('Product');
 
   $meta->table('products');
 
   $meta->columns
   (
     id          => { type => 'int', primary_key => 1 },
     name        => { type => 'varchar', length => 255 },
     description => { type => 'text' },
     category_id => { type => 'int' },
 
     status => 
     {
       type      => 'varchar', 
       check_in  => [ 'active', 'inactive' ],
       default   => 'inactive',
     },
 
     start_date  => { type => 'datetime' },
     end_date    => { type => 'datetime' },
 
     date_created     => { type => 'timestamp', default => 'now' },  
     last_modified    => { type => 'timestamp', default => 'now' },
   );
 
   $meta->add_unique_key('name');
 
   $meta->foreign_keys
   (
     category =>
     {
       class       => 'Category',
       key_columns =>
       {
         category_id => 'id',
       }
     },
   );
 
   ...
 
 

DESCRIPTION

"Rose::DB::Object::Std::Metadata" is a subclass of Rose::DB::Object::Metadata that is designed to serve the needs of Rose::DB::Object::Std objects. See the Rose::DB::Object::Std documentations for information on what differentiates it from Rose::DB::Object.

Only the methods that are overridden are documented here. See the Rose::DB::Object::Metadata documentation for the rest.

OBJECT METHODS

add_primary_key_column COLUMN
This method is an alias for the "add_primary_key_columns()" method.
add_primary_key_columns COLUMNS
Since Rose::DB::Object::Std objects must have a single primary key column named ``id'', calling this method with a COLUMNS argument of anything other than the column name ``id'' or a reference to an array containing the column name ``id'' will cause a fatal error.

In general, you do not need to use this method at all since the "primary_key_columns()" method is hard-coded to always return ``id''.

initialize [ARGS]
This method does the same thing as the Rose::DB::Object::Metadata method of the same name, with one exception. If there is no column named ``id'' in the list of columns, a scalar primary key column named ``id'' is added to the column list. Then initialization proceeds as usual.
primary_key_columns
Always returns the column name ``id'' (in list context) or a reference to an array containing the column name ``id'' (in scalar context).

AUTHOR

John C. Siracusa (siracusa@gmail.com)

LICENSE

Copyright (c) 2008 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.