Alzabo::Runtime::ForeignKey - Foreign key objects


NAME

Alzabo::Runtime::ForeignKey - Foreign key objects


SYNOPSIS

  $fk->register_insert( $value_for_column );
  $fk->register_update( $new_value_for_column );
  $fk->register_delete( $row_being_deleted );


DESCRIPTION

Objects in this class maintain referential integrity. This is really only useful when your RDBMS can't do this itself (like MySQL). For a RDBMS that can do this, this feature can be turned off (by doing $schema->set_referential_integrity(0)).


INHERITS FROM

Alzabo::ForeignKey

Note: all relevant documentation from the superclass has been merged into this document.


METHODS

table_from

table_to

Returns

The relevant Alzabo::Runtime::Table object.

columns_from

columns_to

Returns

The relevant Alzabo::Runtime::Column object(s) for the property.

cardinality

This will be either 1..1 or 1..n.

Returns

A two element array containing the two portions of the cardinality of the relationship.

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.

register_insert ($new_value)

This method takes the proposed column value for a new row and makes sure that it is valid based on relationship that this object represents.

Throws

the Alzabo::Exception::ReferentialIntegrityAlzabo::Exceptions manpage

register_update ($new_value)

This method takes the proposed new value for a column and makes sure that it is valid based on relationship that this object represents.

Throws

the Alzabo::Exception::ReferentialIntegrityAlzabo::Exceptions manpage

register_delete (Alzabo::Runtime::Row object)

Allows the foreign key to delete rows dependent on the row being deleted. Note, this can lead to a chain reaction of cascading deletions. You have been warned.

Throws

the Alzabo::Exception::ReferentialIntegrityAlzabo::Exceptions manpage


AUTHOR

Dave Rolsky, <autarch@urth.org>

 Alzabo::Runtime::ForeignKey - Foreign key objects