![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Hej, mam projekt liczący 35 tabel, dojdzie jeszcze ok 25. Projekt robie wg wzorca mvc i w połowie pracy zacząłem się zastanawiać nad organizacją modeli, czy z waszego doświadczenia powinno się zrobić do każdej tabeli 1 model czy lepiej 1 model do pewnego zbioru, np 5 tabel, które razem tworzą komplet danych?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Opisz dokładniej co masz na myśli pisząc "zrobić 1 model" oraz czym są te tabele (baza danych?). Rzuć może jakiś kodem.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
mysql, weźmy pod lupę galerię:
tabele: -ads -ads_has_gallery -gallery -gallery_images opis dodając ogłoszenie (ads) dodajemy galerię (gallery), gdy galeria jest dodana dodajemy obrazki galerii (gallery_images), gdy gallery i gallery_images są pomyślnie dodane, dodajemy je do ogłoszenia ads_has_gallery model ads -insert ads -insert adsHasGallery model gallery -insert -delete model galleryImages -insert -delete -getByAdId($adId) - pobiera obrazki galerii wg id ogłoszenia czy np lepiej: model ads -insert ads model gallery -insert gallery -insert galleryImages -insert adsHasGallery -delete gallery -delete galleryImages -getByAdId może i zbędne pytanie ale chciałbym to zrobić dobrze Ten post edytował charzak 15.04.2016, 10:48:14 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj trochę pomyliłeś pojęcia (IMG:style_emoticons/default/smile.gif)
Model - odzwierciedlenie tabeli czyli 1 Model == 1 Tabela Repozytorium - Obiekt zarządzający danymi pochodzącymi z modelu. Czyli to co Ty podałeś jako "Grupę modeli" to może być właśnie repozytorium. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
fakt pomieszałem pojęcia, czyli lepiej 1 obiekt zarządzający danymi z modeli czy kilka mniejszych? czy to już bez znaczenia?
a może tak: $gallery = new Gallery(); $gallery->setImages (new Images()); $gallery->insert(); $gallery->images->insert() $ads = new Ads() $ads->setGallery (new Gallery()) $ads->gallery->getById(); Ten post edytował charzak 15.04.2016, 11:32:19 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie, Model to model. Czyli Wrapper na źródło danych. Gallery równie dobrze może być Tabelą w BD, plikiem, CSV, obiektem cache w Redis itd.
Repozytorium jest tym co chcesz. To Tam robisz operacje na źródłach danych. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Robiłem kiedyś właśnie tak, że modelem było kilka tabel i metod ich dotyczących np. orders + order_item.
Teraz tego bardzo żałuje się i z tego spowiadam gdy robię $this->order_model->get() i "nie wiem" czy dostanę zamówienie czy konkretny item z zamówienia pod ID. Oczywiście ja wiem, a kod jest udokumentowany ale mimo to zaburza to klarowność kodu. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za pomoc
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 02:44 |