The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Fey::FK - Represents a foreign key

SYNOPSIS

  my $fk = Fey::FK->new( source => $user_id_from_user_table,
                         target => $user_id_from_department_table,
                       );

DESCRIPTION

This class represents a foreign key, connecting one or more columns in one table to columns in another table.

METHODS

This class provides the following methods:

Fey::FK->new()

This method constructs a new Fey::FK object. It takes the following parameters:

  • source_columns - required

  • target_columns - required

    These parameters must be either a single Fey::Column object or an array reference containing one or more column objects.

    The number of columns for the source and target must be the same.

$fk->source_table()

$fk->target_table()

Returns the appropriate Fey::Table object.

$fk->source_columns()

$fk->target_columns()

Returns the appropriate list of Fey::Column objects as an array reference.

$fk->column_pairs()

Returns an array reference. Each element of this reference is in turn a two-element array reference of Fey::Column objects, one from the source table and one from the target.

$fk->has_tables( $table1, $table2 )

This method returns true if the foreign key includes both of the specified tables. The talbles can be specified by name or as Fey::Table objects.

$fk->has_column($column)

Given a Fey::Column object, this method returns true if the foreign key includes the specified column.

$fk->is_self_referential()

This returns true if the the source and target tables for the foreign key are the same table.

$fk->pretty_print()

Returns a stringified representation of the foreign key in a pretty layout something like this:

  User      Message
  -------   -------
  user_id   user_id

AUTHOR

Dave Rolsky, <autarch@urth.org>

BUGS

See Fey for details on how to report bugs.

COPYRIGHT & LICENSE

Copyright 2006-2009 Dave Rolsky, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.