Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MVC 1 model = 1 tabela vs 1 model - zbiór tabel
charzak
post
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?
Go to the top of the page
+Quote Post
Crozin
post
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.
Go to the top of the page
+Quote Post
charzak
post
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
Go to the top of the page
+Quote Post
Pyton_000
post
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.
Go to the top of the page
+Quote Post
charzak
post
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
Go to the top of the page
+Quote Post
Pyton_000
post
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.
Go to the top of the page
+Quote Post
markonix
post
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.
Go to the top of the page
+Quote Post
charzak
post
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 25.03.2014

Ostrzeżenie: (0%)
-----


dzięki za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 02:44