2011-01-07 22 views
0

我有兩個HasMany-BelongsTo關係的數據庫表,Homes和Assets。我的CakePHP屬於創建空白條目的關係嗎?

直到最近,每個Asset都屬於一個Home。最近這變得更加複雜:現在一些資產屬於房地產經紀人或地區而不是家庭。

今天我已經看到幾十個空白條目出現在我的Homes表中。似乎幾乎可以肯定的是,他們是新資產的結果,與家庭無關,被挽救。

資產模型中的屬於家關係是否可能會強制創建這些空白條目? (或者是否還有另一個可能的原因?)如果是關係,是否有一種快速修改關係的方法,以便資產的生成可以但不一定必須同時生成一個新的主頁入口?

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')); 

地區:

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

您有錯誤的關係,請將您的關係代碼發佈到帖子中。 – Ish 2011-01-07 05:30:44

+0

@Ish Kumar:用模型關係編輯。很確定他們是不是最理想的 - 任何幫助你可以給我找到我的問題的具體罪魁禍首將不勝感激! – thesunneversets 2011-01-07 17:39:22

回答

0

這聽起來像你有什麼是知道作爲ARC關係。這意味着您有一個擁有多個關係的資產表。如上所述,現在看來資產表格將包含可能屬於3個不同表格的數據:住宅,房地產經紀人或地區。根據我的經驗,蛋糕不能很好地處理ARC關係。

我的建議是創建多個資產表:

home_assets 
realtor_assets 
region_assets 

乍一看,你可能會認爲這是超必殺。但是,就簡單性而言,這是做到這一點的最佳方式。

您可以使用單個表格,但需要多一點工作。如果您確實想要使用單個資產表,則需要添加額外的列(類型)(如果尚未添加)。然後,您需要在每次保存之前將該類型添加到資產,具體取決於數據保存的內容:家庭,房地產經紀人或地區。

如果你提供你正在使用(適用於家庭,房地產經紀人和地區),因爲它適用於資產的代碼示例,它會更容易診斷。考慮使用pastebin.com,因爲我認爲代碼集可能相當大。