Fey::FK(3)

NAME
Fey::FK - Represents a foreign key

VERSION
version 0.44

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 tables 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

BUGS
See Fey for details on how to report bugs.

Bugs may be submitted at <https://github.com/ap/Fey/issues>.

SOURCE
The source code repository for Fey can be found at <https://github.com/ap/Fey>.

AUTHOR
Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE
This software is Copyright (c) 2011 - 2025 by Dave Rolsky.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)

The full text of the license can be found in the LICENSE file included with this distribution.