![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 29.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem ze zrozumieniem jednej rzeczy. Powiedzmy, ze mam w bazie tablice articles gdzie trzymam swoje artykuły.Teraz mam klasę powiedzmy Articles która pobiera dane z bazy i dla każdego wiersza tworzy na podstawie klasy Article obiekt Article. Obiekt Article udostepnia metody do pobierania danych np. getID, getContent, getTtitle itd. I teraz mój problem jest taki, że nie wiem gdzie umieścić metody add i del ktore by odpowiednio dodawaly nowy artykul i kasowaly istniejacy. Czy to powinno byc w klasie Articles czy też w Article. Bo jezeli w Article to powiedzmy, że wykonam na obiekcie metode del to artykul sie skasuje a obiekt bedzie wskazywal na coś co nie istnieje i nie wiem czy tak moze byc. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
PO usuneciu mozesz uzyc unset() na dany obiekt wtedy go usuniesz.
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Twój obiekt Articles, z tego co napisałeś, jest swoistym managerem - ona powinna być odpowiedzialna za taką operacje. Ale to w teorii. W praktyce obiekt Article też mógłby potrafić usunąć sam siebie.
Czego wynikiem będzie: Cytat DELETE FROM articles WHERE id = 1 Usuwanie obiektu Article (id = 1) NULL No dobra, to nie jest zbyt skomplikowane. Wygląda na to, że lepiej i szybciej by było użyć samego $article->delete(). Prawdziwy sens pokazuje się gdy chciałbyś usunąć więcej niż jeden obiekt Article.
Czego wynikiem będzie: Cytat DELETE FROM articles WHERE id = 1 DELETE FROM articles WHERE id = 2 DELETE FROM articles WHERE id = 3 DELETE FROM articles WHERE id = 4 DELETE FROM articles WHERE id = 5 DELETE FROM articles WHERE id = 6 DELETE FROM articles WHERE id = 7 DELETE FROM articles WHERE id = 8 DELETE FROM articles WHERE id = 9 DELETE FROM articles WHERE id = 10 Usuwanie obiektu Article (id = 1) Usuwanie obiektu Article (id = 2) Usuwanie obiektu Article (id = 3) Usuwanie obiektu Article (id = 4) Usuwanie obiektu Article (id = 5) Usuwanie obiektu Article (id = 6) Usuwanie obiektu Article (id = 7) Usuwanie obiektu Article (id = 8) Usuwanie obiektu Article (id = 9) Usuwanie obiektu Article (id = 10) NULL Niefajnie, prawda? 10 zapytań... na pomoc biegnie obiekt Articles.
Teraz, gdy użyjemy Articles::deleteArticles()
Cytat DELETE FROM articles WHERE id In (1,2,3,4,5,6,7,8,9,10) Usuwanie obiektu Article (id = 1) Usuwanie obiektu Article (id = 2) Usuwanie obiektu Article (id = 3) Usuwanie obiektu Article (id = 4) Usuwanie obiektu Article (id = 5) Usuwanie obiektu Article (id = 6) Usuwanie obiektu Article (id = 7) Usuwanie obiektu Article (id = 8) Usuwanie obiektu Article (id = 9) Usuwanie obiektu Article (id = 10) array(0) { } Tylko jedno zapytanie! To jest oczywiście bardzo, bardzo prosty przykład, ale ilustruje co można zyskać na rozbudowie zależności między obiektami. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 21:07 |