2011-01-07 8 views
0

HasMany-BelongsTo 관계가있는 두 개의 데이터베이스 테이블 인 주택 및 자산이 있습니다.내 CakePHP는 관계 있습니까 빈 항목 만들기?

최근까지 모든 자산은 하나의 홈에 속해있었습니다. 최근에는 일부 자산이 주택이 아닌 부동산 중개인 또는 지역에 속합니다.

오늘 내 홈 테이블에 수십 개의 빈 항목이 표시되었습니다. 그것들은 새로운 자산의 결과 인 것으로 거의 확실해 보입니다. 새로운 자산은 집과 연결되어 있지 않고 구원받습니다.

자산 모델의 BelongsTo Home 관계가 이러한 빈 항목의 생성을 강요하고 있습니까? (또는 또 다른 이유가 있을까요?) 그것이 관계라면 관계를 수정하는 빠른 방법이 있습니까? 그래서 자산의 생성은 새로운 것을 생성하는 것과 동시에 진행될 수 있습니다. 홈 엔트리?

EDITED :

자산 :

var $belongsTo = array(
    'Home' =>array('className' => 'Home', 'foreignKey' => 'home_num')); 

var $hasOne = array(
    'Landmark' =>array('className' => 'Landmark', 'foreignKey' => 'asset_num', 
       'dependent' => true)); 

홈 :

var $hasOne = array('HighlightImage' => array(
    'className'  => 'Asset', 
    'conditions' => 'highlight_image = TRUE', 
    'order'   => '', 
    'foreignKey' => 'home_num', 
    'dependent'  => false, 
    'exclusive'  => false, 
    'finderQuery' => '')); 

var $hasMany = array('Assets' => array(
    'className'  => 'Asset', 
    'conditions' => '', 
    'order'   => '(Assets.title + 0) ASC', 
    'limit'   => '200', 
    'foreignKey' => 'home_num', 
    'dependent'  => false, 
    'exclusive'  => false, 
    'finderQuery' => '')); 

랜드 마크 :

var $belongsTo = array(
    'Assets' => array(
     'className' => 'Asset', 
     'foreignKey' => 'asset_num'), 
'Regions' =>array(
     'className' => 'Region', 
     'foreignKey' => 'region_num')); 
여기에 모델 사이의 현재의 관계는

지역 : 당신은 ARC 관계로 알고 무엇 가지고있는 것처럼

var $hasMany = array('Landmarks' => array(
    'className' => 'Landmark', 
    'foreignKey' => 'region_num')); 
+0

관계가 잘못되었으므로 관계 코드를 게시물에 게시하십시오. – Ish

+0

@Ish 쿠마 : 모델 관계로 편집. 분명히 그들은 차선책이라고 확신합니다. 내 문제의 원인을 찾기 위해 어떤 도움을 주어도 도움이 될 것입니다! – thesunneversets

답변

0

소리가 난다. 즉, 여러 관계가있는 하나의 자산 테이블이 있음을 의미합니다. 위에서 설명한 것처럼 이제 Assets 테이블에는 주택, 부동산 중개인 또는 지역의 세 가지 테이블에 속할 수있는 데이터가 포함됩니다. 제 경험상 케이크는 ARC 관계를 잘 처리하지 못합니다.

내 조언은 여러 자산 테이블을 만드는 것입니다 : 언뜻

home_assets 
realtor_assets 
region_assets 

, 당신은이 죽일 이상 생각할 수 있습니다. 그러나 단순성면에서 이것이 최선의 방법입니다.

하나의 테이블을 사용할 수 있지만 더 많은 작업이 필요합니다. 단일 자산 표를 실제로 사용하려는 경우 아직 추가하지 않은 경우 추가 열 (유형)을 추가해야합니다. 그런 다음 데이터를 저장하는 대상 (집, 부동산 중개자 또는 지역)에 따라 각 저장하기 전에 유형을 자산에 추가해야합니다.

자산에 적용 할 때 사용하는 코드 샘플 (집, 부동산 및 지역 용)을 제공하면 진단하기가 쉽습니다. pastebin.com을 사용하는 것을 고려해보십시오. 코드 세트가 다소 클 수 있다고 가정합니다.

+0

아, 그 관계는 혼란 스럽네. (내 방위에서, 내가 오기 전에 많은 것들이 제자리에 있었어!) 자산 테이블에 home_num, realtor_num 및 kiosk_num 필드가 있습니다. 그 중 두 개는 주어진 자산에 대해 0이 될 것입니다. 소유권. 일을 완전히 다른 방식으로, 각각의 자산 Hasousn "랜드 마크"는 지역에 속해있다 (HasMany 랜드 마크).아마 랜드 마크는 다른 방향보다는 하나의 자산을 가져야합니다. 모든 것을 리펙토링 할 것이라는 전망은 매우 위협적입니다. 어떤 경우 든 모델 관계로 질문을 업데이트 할 것입니다 ... – thesunneversets