Как лучше всего установить отношения «многие ко многим» в объектно-ориентированном PHP.
Если у меня есть три таблицы, книги и категории, а также таблица категорий bookscategories (обрабатывает многие ко многим), должен ли я создать модель / класс под названием bookcategories и обрабатывать там все, что связано с отношениями книга-категория?
Мои конкретные вопросы относительно приведенного ниже псевдокода:
- Правильно ли я назначил методы соответствующим классам?
- Есть ли лучший способ добиться этого, не очень сложный?
- В каком классе обрабатываются отношения связывания? например $ book-> link_to_cat ('5')?
- Любые предостережения по использованию этого подхода (если применимо).
Любые советы приветствуются! Заранее спасибо!
Псевдокод:
<?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.
}
}
?>
BookCategories
- это ненужная деталь реализации. Просто добавьте методget_categories()
в класс книги и методget_books()
в класс категории. Или поместите код в каждый конструктор, чтобы вывести все связанные книги / категории при создании объекта категории / книги. - person Sam Dufel   schedule 14.01.2011