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)
COPYRIGHT
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.