2010-12-01 1 views
1

레거시 MySql 데이터베이스 위에 Doctrine을 구현하려고합니다. 지금은 그것을 wokrs 친절한 좋은.Doctrine - 필드에 쉼표로 구분 된 값

CREATE TABLE `events` (
    `uid` int(11) NOT NULL AUTO_INCREMENT, 
    -- skipped --- 
    `title` varchar(255) NOT NULL DEFAULT '', 
    `category` text, 
)... 

그리고 테이블 카테고리, 카테고리를 가지고 whitch :하지만 ...

나는 이벤트 whitch 구조 다음있다 테이블이 있습니다. 구조
CREATE TABLE `tx_tendsical_category` (
    ... 
`title` varchar(255) NOT NULL DEFAULT '', 
    ... 
) 

지금 ... 종류 IDS는 콤마로 저장 은 ... 등이다() events.category 필드 값을을 분리 하였다. 많은 번거 로움없이 어떻게 관계를 설정할 수 있습니까? 많이 필요합니다 ...

+0

당신은 자신에게 Events_categories 테이블 –

+0

나는 단지 구현하고있어 수 없기 때문에주고 정상화 더 나을 것 "보기"시스템은 데이터베이스를 변경할 수 없습니다 :( –

답변

3

데이터베이스 스키마에 문제가 있으면 직접 hydrators를 작성하십시오. 모든 데이터를 가져 오면이를 구문 분석하고 적절한 객체 컬렉션을 반환합니다.

0

나는 이렇게했습니다 ... Perhapse 더 좋은 방법이 있습니까?

public function getCategories(){ 
    return Doctrine_Query::create() 
     ->from("Category c") 
     ->where("c.uid IN ?",array(explode(",",$this->category))) 
     ->execute(array(),Doctrine_Core::HYDRATE_ON_DEMAND); 
}