2010-08-11 66 views
2

在ZF中存儲複雜模型的最佳方法是什麼?在下面的例子中,每個屬性應該是完全獨立的模型,還是應該是多維數組(如下所示)?分層?複雜的Zend框架模型/對象的結構

object(Application_Model_Item)#79 (4) { 
    ["_id":protected] => int(45) 
    ["_name":protected] => string(5) "Bolts" 
    ["_description":protected] => NULL 
    ["_attributes":protected] => array(2) { 
    [0] => array(2) { 
     ["id"] => string(1) "3" 
     ["name"] => string(4) "Size" 
    } 
    [1] => array(2) { 
     ["id"] => string(1) "4" 
     ["name"] => string(6) "Length" 
    } 
    } 

在此先感謝。

+0

你有任何特定的ORM要求嗎?詳細說明ORM原則的建議是否可行? – balupton 2010-08-11 12:20:45

回答

1

這一切都取決於你的使用情況:

索引的ID或位置:

  • 如果你想通過其ID訪問時,特定的屬性,那麼指數的屬性,而不是喜歡速度他們的指數位置。
  • 如果您想保留訂單,請按指數位置和頭寸偏移量進行訂購。

獨立表Vs的本地陣列:

  • 如果屬性在多個項目重複的,然後讓他們爲自己的表,並引用屬性,該屬性表。
  • 如果這些屬性沒有得到確認並且對每個項目都是唯一的,那麼將它們作爲可串行化數組(用於存儲)就足夠了,而不需要它們成爲它們自己的表。
+0

感謝您的回覆。我真的應該看看教條,這只是我懶得學習一門新語言。我也聽說教條可能會變得相當耗費資源,所以我正計劃自己編寫映射器(在php中)。 – 2010-08-12 03:56:08

+0

不用擔心,希望我幫助:-) 學說其實相當簡單,在我自己的ORM變得有點過於傳統之後,我轉向它。這是相當資源密集型的,並且有時很難調試,但我並不後悔這一舉措,因爲這些垮臺是完全合理的。 – balupton 2010-08-12 05:53:54

0

在_attributes的情況下,我會使用對象數組。 所以它的屬性將是新的模型屬性()數組

我做一個類每一個業務模型實體

["_attributes":protected] => array(2) { 
    [0] => Object(Model_Attribute) {} 
    [1] => Object(Model_Attribute) {} 
} 

class Model_Attribute { 
    protected $id; 
    public function getId(); 
    public function setId($id); 
    . 
    . 
    . 
} 

我建議你看看學說ORM 2.0,因爲它可以支持設計從上面。 看看這個頁面,它可能會給你一個線索: http://www.doctrine-project.org/projects/orm/2.0/docs/reference/association-mapping/en