Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Model
zlotownia
post 26.08.2009, 08:36:04
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.08.2009

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


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?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
daniel1302
post 26.08.2009, 13:06:37
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Ja mam zrobione podobnie jak u ciebie spsób 1, nie testowałem na większym projekcie. Ciekawi mnie też zdanie innych
Go to the top of the page
+Quote Post
Fifi209
post 26.08.2009, 13:10:24
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Osobiście wybrałbym rozwiązanie 1.

Co do wydajności...

Cache, cache, cache + optymalizacja zapytań.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
daniel1302
post 26.08.2009, 13:14:34
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


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

Ten post edytował daniel1302 26.08.2009, 19:24:44
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:50