public function buildRelations()
{
$this->_relations = array();
foreach ($this->getAllTableNames() as $table_name) {
$tableInfo = $this->_dbMetaData->getTableInfo($table_name);
$pks = $tableInfo->getPrimaryKeys();
$fks = $tableInfo->getForeignKeys();
if (count($pks) === 2 && count($tableInfo->getColumns()) === 2) {
$table_name_mm = $fks[0]["table"];
$table_name_mm2 = $fks[1]["table"];
$this->_relations[$table_name_mm][] = array("prop_name" => strtolower($table_name_mm2), "rel_type" => "self::MANY_TO_MANY", "ref_class_name" => $this->_getProperClassName($table_name_mm2), "prop_ref" => $table_name);
$this->_relations[$table_name_mm2][] = array("prop_name" => strtolower($table_name_mm), "rel_type" => "self::MANY_TO_MANY", "ref_class_name" => $this->_getProperClassName($table_name_mm), "prop_ref" => $table_name);
continue;
}
foreach ($fks as $fk_data) {
$owner_table = $fk_data["table"];
$slave_table = $table_name;
$fk_prop = key($fk_data["keys"]);
$this->_relations[$owner_table][] = array("prop_name" => strtolower($slave_table), "rel_type" => "self::HAS_MANY", "ref_class_name" => $this->_getProperClassName($slave_table), "prop_ref" => $fk_prop);
$this->_relations[$slave_table][] = array("prop_name" => strtolower($owner_table), "rel_type" => "self::BELONGS_TO", "ref_class_name" => $this->_getProperClassName($owner_table), "prop_ref" => $fk_prop);
}
}
}