Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Model
Forum PHP.pl > Forum > PHP
zlotownia
Witam, ostatnio zacząłem projektować w swojej aplikacji modele, i mam problem i 2 rozwiązania i oto pytanie:
Które rozwiązanie jest lepsze?

1. Multimodel-
Model : W modelu definiuje sobie nazwe tabeli, pobieram wszystkie pola z tabeli i określam dostępne na tabeli opcje(select/ delete/ update)
przykład
  1. Class User_Model extends Model
  2. {
  3. /**
  4. *Tabela
  5. **/
  6. private $tabel = 'users';
  7.  
  8. /**
  9.   *Definicja opcji
  10. **/
  11. private $update = 1;
  12. private $delete = 0;
  13. private $select = 1;
  14. //......
  15.  
  16. public function __construct($id)
  17. {
  18. $this -> select($this->tabel, array('user_id' => $id));
  19.  
  20. $this -> id = $this -> record['user_id'];
  21. $this -> name = $this -> record['user_name'];
  22. $this -> email = $this -> record['user_email'];
  23. }
  24. }

Kontroler: Tworzę sobie zmienną multi model(tablica albo objekt) przetrzymująca instancje potrzebnych modeli

+Łatwe zapytania
+Ładny Porządek
+Duża kontrola
-Zmniejszona szybkość

2- Model dla Kontrollera
W robię kontroller np register_controller i model register_model
i w modelu trzymam tylko potrzebne informacje.

+Szybkośc
-Mniejszy porządek
-Gdy zmienimy strukturę tabeli to trzeba edytować multium plików
-Powolne zapytania
-Średnia kontrolla




Proszę o polecenie mi opcji która wg was jest lepsza?
Ja obstawiam No.1 ale męczy mnie problem wydajności. Co wy o tym myślicie?

daniel1302
Ja mam zrobione podobnie jak u ciebie spsób 1, nie testowałem na większym projekcie. Ciekawi mnie też zdanie innych
Fifi209
Osobiście wybrałbym rozwiązanie 1.

Co do wydajności...

Cache, cache, cache + optymalizacja zapytań.
daniel1302
Ja mam cache ale w osobnym module, ale nie da się cachować wszystkiego.
Off:
Ja kiedyś byłem użytkownikiem portalu, którego właściciel cachował całe tabele, w tym ilość postów użytkownika, itp i odświeżał cache co godzine. Mnie to rozwaliło bo jak napisałem post, pojawiał się za godzine.

Według mnie tutaj zapytań nie da się za bardzo zoptymalizować, ponieważ każdy model ma swoją tabelę. Ja pobieram jedynie te dane które muszę i to chyba tyle z optymalizacji. Jeszcze można optymalizować kolejnością parametrów po where
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.