Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obiekt komentarz
Forum PHP.pl > Forum > PHP
rahul
Witam
Nasunelo mi sie takie pytanie odnosie budowy obiektu komentarza w pewnym przypadku.
Jezeli mam strone ktora przypuscmy ma wiele elementow ktore moga byc komentowane tj. miejsce, zdarzenie, komentarz komentarza.
Jak stworzyc poprawnie obiekt komentarz i jak zawrzec informacje odnsnie zrodla ktore jest komentowane.
Jak w bazie utworzyc pola aby komentarz wiedzial czy komentuje miejsce , czy zdarznie czy inny komentarz i jak wtedy wygladalby taki obiekt?
nospor
1) Może by tak po kolei? Zanim zabierzesz się za obiekt, stwórz strukture bazy
2) Póki co z OOP temat za dużo nie ma wspólnego - przenoszę

Skoro komentować możesz różne struktury, to w tabeli muszą być dodatkowe dwa pola:
TARGET - komentowana struktura. Możesz to oznaczać cyframi lub tekstem. Jak ci wygodniej
TARGET_ID - id danego rekordu z danej tabeli w zależnosci od TARGET
bastard13
Cytat(nospor @ 19.09.2011, 12:15:47 ) *
1) Może by tak po kolei? Zanim zabierzesz się za obiekt, stwórz strukture bazy

Osobiście nie zgadzam się z tym stwierdzeniem. Jeżeli chodzi o projektowanie, to właśnie najpierw tworzy się model obiektów, a dopiero później, gdy już mamy wszystkie zależności, możemy sobie z łatwością stworzyć diagram ERD i na jego podstawie wygenerować strukturę bazy.
A sama klasa? Moim zdaniem coś takiego:
  1. class Comment{
  2. private $_content;
  3. private $_target;
  4. public function __construct($target) {}
  5. public function setContent($content) {}
  6. public function getContent() {}
  7. }

Target powinien być ustawiany w konstruktorze, bo już w momencie tworzenia wiesz do czego jest dany komentarz. Oczywiście musisz jeszcze zwalidować, czy $target (jakiś obiekt) może rzeczywiście posiadać komentarz. Doradzałbym jakiś wspólny interfejs do wszystkich encji, które mogą mieć komentarz np. Commentable, które będą realizowały. Oszczędzi ci to walidacji, bo wtedy możesz zastosować twarde typowanie.

Oczywiście czym innym jest realizacja tego w kodzie, bo do tego rzeczywiście już potrzeba bazy i odpowiednich tabel, ale jeżeli chodzi o sam projekt, to mniej więcej tak.
mike
Również podpisuję się pod opinią, że projektowanie najpierw bazy to podejście od dupy strony.
nospor
Dobrze, może źle się wyraziłem, a może dobrze i jednak wolę mój sposób smile.gif
Chodziło mi o samo tworzenie obiektów w php. Zanim zacznie się tworzyć klasy/obiekty w php to warto by mieć diagram. A że autora wątku nie podejrzewałem o coś takiego jak diagram więc zszedłem na poziom bazy.
rahul
O'right. ROzumiem o co be. Z tym ze jezeli bedzie sobie komentarz komentarza na podstronie np. "eventow" badz innej - "newsow" . To czy w tym momencie moj target - z "event" badz "news" zmieni sie na user ? Jezeli tak to jak z strony zapytania bede mowl wyswietlic wszystkie adekwatne komentarze na podstronie. Czyli te adekwatne do wyswietlanego eventu/newsu + wszystkie komentarze komentarzy. Peace.
Kedan
Wydaje mi się że hierarchiczna struktura komentarzy jest nie potrzebna - czytelniej to wygląda gdy są jeden pod drugim. Jeśli jednak jest Ci coś takiego potrzebne, w tabeli komentarzy dodaj kolumnę 'parent_id'.
rahul
Tez tak mysle jednak osoba ktorej mam to napisac zyczy sobie inaczej. Thx za odp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.