2011-01-14 113 views
2

什麼是在面向對象的PHP中進行多對多關係的最佳方式。如何處理與OOPHP的多對多關係?

如果我有三張表,書籍和類別以及連接表bookscategories(處理多對多),我應該創建一個名爲bookcategories的模型/類並處理與書類關係有關的所有事情嗎?

我參照下面的僞代碼的具體問題是:

  1. 我有沒有正確分配的方法,以適當的類?
  2. 有沒有更好的方法來實現這個不是很複雜?
  3. 在哪個類中處理鏈接關係?例如$書本 - > link_to_cat( '5')?
  4. 使用此方法的任何警告(如果適用)。

任何意見是高度讚賞!提前致謝!

僞代碼:

<?php 

class Books { 
    //handles all book table stuff 

    public function delete_book() { 
     //deletes specific book 
     //deletes all related bookcategories using find_by_book_id 
    } 
} 

class Categories { 
    // handles all category stuff 
} 

class BookCategories { 

    public static function get_cats_by_book_id { 
     // sql join statement to retrieve category objects by book id 
    } 

    public static function get_books_by_cat_id { 

    } 

    public static function find_by_book_id() { 
     //returns bookcategories by book id. 
    } 
} 


?> 
+0

就我個人而言,我會拋棄`BookCategories`類 - 這是一個不必要的實現細節。只需在類類中添加一個`get_categories()`方法,並在類別類中添加`get_books()`方法。或者,在創建類別/書目對象時,將代碼放入每個構造函數中以提取所有鏈接的書籍/類別。 – 2011-01-14 06:19:33

+0

爲什麼你的類名是複數? – 2011-01-14 06:20:17

回答