2013-02-03 74 views
0

如果我有一個用戶表和郵件表,我必須定義一個email.php模型User.php來定義這種關係:也我是否需要爲所有關聯定義模型?

static $has_many = array(
     array('emails') 
    ); 

,如果我有這樣的電子郵件,可以是一個對象外鍵與可以擁有該對象的其他對象的關係,我如何定義電子郵件可以belong_to usersbelong_to domains

回答

-1

你在使用框架嗎?

如果你不應該使用每個模型的靜態吸氣。

你應該在它的數據字段使用惰性加載。

所以,如果你寫的電子郵件 - >的getUser(),你會得到一個用戶對象只知道它的ID,並可以從數據庫需要的時候延遲加載數據。

要知道總是知道你在做什麼(有時它更好地使用連接,以避免N次查詢(用環或取數據時拋出超過2個表))。

我建議你不要寫你自己的ORM或活動記錄的實現,除非你想學的東西。

更好地利用doctrine2或爲您的項目等效框架。

+0

我正在使用http://www.phpactiverecord.org/和CodeIgniter。 – StackOverflowed

0
  1. 如果使用phpAR默認命名約定,則不必定義模型。 雖然你可能想要,如果你使用關聯。如果不定義Email模型及其belongs_to關係User,您將無法通過Email訪問User(僅反之亦然,Email通過User

  2. belongs_to通過陣列來實現的:

    class Email extends ActiveRecord\Model { 
        static $belongs_to = array(
         array('user'), 
         array('domain') 
        ); 
    } 
    

注意,對於belongs_to你必須使用單數形式,沒有複數

相關問題