SYNOPSIS
use Alzabo::Create::ForeignKey;
DESCRIPTION
A foreign key is an object defined by several properties. It represents a relationship from a column or columns in one table to a column or columns in another table.This relationship is defined by its cardinality (one to one, one to many, or many to one) and its dependencies (whether or not table X is dependent on table Y, and vice versa).
Many to many relationships are not allowed. However, you may indicate such a relationship when using the Alzabo::Create::Schema->add_relation method method, and it will create the necessary intermediate linking table for you.
INHERITS FROM
"Alzabo::ForeignKey"Note: all relevant documentation from the superclass has been merged into this document.
METHODS
new
The constructor takes the following parameters:- columns_from => "Alzabo::Create::Column" object(s)
-
columns_to => "Alzabo::Create::Column" object(s)
These two parameters may be either a single column or a reference to an array columns. The number of columns in the two parameters must match.
- cardinality => [1, 1], [1, 'n'], or ['n', 1]
- from_is_dependent => $boolean
- to_is_dependent => $boolean
-
comment => $comment
An optional comment.
It returns a new "Alzabo::Create::ForeignKey" object.
Throws: "Alzabo::Exception::Params"
table_from
table_to
Returns the relevant "Alzabo::Create::Table" object.columns_from
columns_to
Returns the relevant "Alzabo::Create::Column" object(s) for the property as an array.column_pairs
Returns an array of array references. The references are to two column array of "Alzabo::Create::Column" objects. These two columns correspond in the tables being linked together.set_columns_from (Alzabo::Create::Column object(s))
Sets the column(s) that the relation is from. This can be either a single column object or a reference to an array of column objects.Throws: "Alzabo::Exception::Params"
set_columns_to (Alzabo::Create::Column object(s))
Sets the column(s) that the relation is to. This can be either a single column object or a reference to an array of column objects.Throws: "Alzabo::Exception::Params"
cardinality
Returns a two element array containing the two portions of the cardinality of the relationship. Each portion will be either '1' or 'n'.from_is_dependent
to_is_dependent
Returns a boolean value indicating whether there is a dependency from one table to the other.is_one_to_one
is_one_to_many
is_many_to_one
Returns a boolean value indicating what kind of relationship the object represents.set_cardinality (\@cardinality) see above for details
Sets the cardinality of the foreign key.Throws: "Alzabo::Exception::Params"