Was ist der beste Weg, um viele-zu-viele-Beziehungen in objektorientierten PHP zu gehen.Wie man viele-zu-viele Beziehungen mit OOPHP behandelt?
Wenn ich drei Tabellen, Bücher und Kategorien und die Join-Tabelle bookscategories (behandelt viele zu viele) habe, sollte ich ein Modell/Klasse namens bookcategories erstellen und alles, was mit der Buchkategorie Beziehung dort zu tun?
Meine spezifische Fragen in Bezug auf den Pseudo-Code unten sind:
- Habe ich die Methoden in die entsprechenden Klassen richtig zugeordnet?
- Gibt es eine bessere Möglichkeit, dies zu erreichen, die nicht sehr komplex ist?
- In welcher Klasse behandelt man die Verknüpfungsbeziehung? z.B. $ Buch-> link_to_cat ('5')?
- Alle Einschränkungen für die Verwendung dieses Ansatzes (falls zutreffend).
Jeder Rat wird sehr geschätzt! Danke im Voraus!
Pseudo-Code:
<?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.
}
}
?>
Persönlich würde ich die 'BookCategories' Klasse ablegen - es ist ein unnötiges Implementierungsdetail. Fügen Sie einfach eine 'get_categories()' Methode in der Buchklasse und eine 'get_books()' Methode in der Kategorie-Klasse hinzu. Oder setzen Sie Code in jeden Konstruktor, um alle verknüpften Bücher/Kategorien aufzurufen, wenn Sie ein Kategorie-/Buchobjekt erstellen. –
Warum sind Ihre Klassennamen im Plural? –
@Sam - würden Sie das auch empfehlen, wenn BookCategories zusätzliche Eigenschaften haben, wie BookCategory assign_date, assigned_by_user usw. – Nick