![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 5.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
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 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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:
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 13:31 |