Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dylemat dotyczący wydajności kodu klasy, nie wiem jaki typ metody będzie wydajniejszy
sebap123
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 26.08.2009
Skąd: Szczecin

Ostrzeżenie: (10%)
X----


Witam,

Pisze właśnie klasę obsługującą konta użytkowników w serwisie. Generalnie każdy użytkownik jest wpisywany do trzech różnych tabel - jedna to ogólnie login, mail itp; druga to dane adresowe; a trzecia dane dotyczące blokad, pochwal itp.
Teraz się zastanawiam, jak będzie lepiej napisać metody edytujące różne dane z tych tabel. Czy lepiej jest napisać parę "wyspecjalizowanych" metod, gdzie każda odpowiada za góra dwie-trzy komórki z jednej tabeli, czy np. jedną duża i ogólna metodę odpowiadającą za wszystko. Zaznaczam też, że nie wszystkie pola będą edytowane tak samo często jak pozostałe.

Macie jakieś porady, czy to nie ma większego znaczenia?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Co do wydajności, to zawsze najszybciej będzie nie opakowywać tego, tylko używać php'owych funkcji.
Na szczęście w dzisiejszej dobie możesz pominąć kwestię wydajności (no chyba, że jest to jakiś rzeczywisty wymóg), ponieważ istotniejsza jest (szczególnie przy większych projektach) czytelność kodu, a z tego powodu warto skupić się na pisaniu obiektowym.
Osobiście polecałbym ci jakiegoś ORM'a do obsługi tego wszystkiego, bo łatwiejsza do zrozumienia jest logika projektu. Opakowanie zapytania update w sposób, który zaproponował enviro wydaje mi się złym podejściem. User powinien być osobnym bytem i powinno to w kodzie wyglądać mniej więcej tak:
  1. $user->setData($data)->save();

I już. Od razu widać co się dzieje - właśnie zostały zapisane dane użytkownika. Natomiast coś takiego:
  1. MyMysqli::update(array(
  2. 'table' => 'users',
  3. 'data' => array(
  4. 'id' => 34,
  5. 'name; => 'name'
  6. )
  7. ))

Chyba nie wygląda zbyt elegancko i zmusza do zbytecznego wysiłku, aby zrozumieć co się tu dzieje:)
Oczywiście gdzieś tam w końcu musisz wykonać ten update, ale albo zastosuj do tego ORM'y, bo już tam wszystko jest ładnie opakowane i raczej lepiej (przynajmniej szybko:) tego nie napiszesz, a jeżeli nie to wykonuj normalne query, bo to będzie szybsze.
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 05:29