Storm\Drivers\Platforms\Mysql\Syncing\DatabaseBuilder::BuildForeignKey PHP Метод

BuildForeignKey() приватный Метод

private BuildForeignKey ( Storm\Drivers\Base\Relational\Queries\IConnection $Connection, $DatabaseName, array $Columns, array $ForeignKeyRows, array &$LoadedTables )
$Connection Storm\Drivers\Base\Relational\Queries\IConnection
$Columns array
$ForeignKeyRows array
$LoadedTables array
    private function BuildForeignKey(IConnection $Connection, $DatabaseName, array $Columns, array $ForeignKeyRows, array &$LoadedTables)
    {
        $ForeignKeyRow = $ForeignKeyRows[0];
        $Name = $ForeignKeyRow['CONSTRAINT_NAME'];
        $ReferencedTableName = $ForeignKeyRow['REFERENCED_TABLE_NAME'];
        $ReferencedTable = $this->BuildTable($Connection, $DatabaseName, $ReferencedTableName, $LoadedTables);
        $ReferencedColumnMap = new Map();
        foreach ($ForeignKeyRows as $ForeignKeyRow) {
            $ParentColumn = $Columns[$ForeignKeyRow['COLUMN_NAME']];
            $ReferencedColumn = $ReferencedTable->GetColumn($ForeignKeyRow['REFERENCED_COLUMN_NAME']);
            $ReferencedColumnMap[$ParentColumn] = $ReferencedColumn;
        }
        $UpdateMode = $this->MapForeignKeyMode($ForeignKeyRow['UPDATE_RULE']);
        $DeleteMode = $this->MapForeignKeyMode($ForeignKeyRow['DELETE_RULE']);
        return new Traits\ForeignKey($Name, $ReferencedColumnMap, $UpdateMode, $DeleteMode);
    }