문제

나는 많은 것을 검색했지만 PHP에서 일대일, 일대일 대와 같은 테이블 관계를 덤프하는 방법을 찾을 수 없었습니다.

PHP 에서이 문제를 처리 할 수있는 방법이 있습니까?

결과는 다음과 같습니다.

array(
   'tableA' => array(
                'one-to-one' => array('tableB', 'tableC'),
                'one-to-many' => array('tableD'),

   'tableB' => array(
                'one-to-one' => array('tableA')


    ...        
)

모든 제안은 대단히 감사합니다.

도움이 되었습니까?

해결책

설명 명령의 출력을 구문 분석하여 직접 수행해야합니다. orm 좋아요를 고려할 수 있습니다 교의. 당신은 교리에게 일대일 관계를 만들라고 말합니다. 표 A와 표 B에서 나머지를 처리합니다.

다른 팁

나는 대본을 찾았다 http://dev.mysql.com/doc/refman/en/show-table-status.html Regex가있는 구문 분석 테이블 정보를 설명합니다. 나는 코드를 조작했다. 코드는 다음과 같습니다.

<?php
$conn = mysql_connect('localhost', 'user', 'pass');
if (!$conn) {
    die('Could not connect: ' . mysql_error());
}

//DB connection already established
mysql_query("use db");
$res = mysql_query("SHOW CREATE TABLE tbl");
$row = mysql_fetch_assoc($res);
mysql_free_result($res);

//Only work on InnoDB foreign key info.
if(preg_match_all(
         '/FOREIGN KEY \(`(.*)`\) REFERENCES `(.*)` \(`(.*)`\)/',
         $row['Create Table'],
         $matchArr)) {
    print_r($matchArr); //which writes down the result

}


?> 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top