Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wydajnosc A Elastycznosc
Forum PHP.pl > Forum > PHP
M4chu
Witam, napisalem sobie klase do obslugi bazy danych, wyszlo mniej wiecej cos takiego
  1. <?php
  2. class Db
  3. {
  4. public $connectId;
  5. public $database;
  6. //itp
  7.  
  8. public $resultId;
  9. public $numRows;
  10. public $affectedRows;
  11. //itp
  12.  
  13. public $fetchMode;
  14. public $rows;
  15. //itp
  16.  
  17. function connect()
  18. {
  19. }
  20.  
  21. function execute()
  22. {
  23. }
  24.  
  25. function fetch()
  26. {
  27. }
  28. }
  29. ?>

celowo rozdzielilem zeby pokazac do czego zmierzam smile.gif
Zastanawialem sie czy warto byloby rozdzielic to na odpowiednie klasy: DbConnect, DbResult, DbManipulator. Plusem jest to ze mam porzadek w kodzie, minusem spadek wydajnosc ( np w klasie DbResult, musialbym robic mysql_query($query, DbConnect->getInstance()->id) itp)
Co o tym sadzicie? Czy wywazam otwarte drzwi (na sile i tam gdzie nie potrzeba rozdzielam) czy moze jest w tym troszeczke sensu smile.gif
Dabroz
Rozwiązanie zależy od tego czy oczekujesz wydajności czy elastyczności kodu, który swoją drogą wyglądałby horrendalnie...

PS. Na pewno warto zmienić temat postu.
Zodiac
Najlepiej po prostu użyc mysqli smile.gif

Jeśli natomiast zależy ci na natywnym driverze dla bazy danych, ktory będzie mógł wykonać dowolne zapytanie zgodnie z SQL, to jesteś na dobrej drodze z powyższym przykładem.
M4chu
Wlasnie o to mi chodzi - elastyczna klasa do wielu baz danych smile.gif
Dabroz
Sugeruje zebys nei korzystal z tylu zmiennych public, bo lamie to zasade hermetyzacji klasy.
M4chu
Wiem wiem, przyklad pisalem z glowy zeby pokazac zagadnienie.
Pewnie sobie to wszystko podziele, najwyzej kiedys (jak bedzie za wolno) polacze smile.gif
sf
Hm, chyba lepiej napisać dla każdego typu bazy osobną klasę. Jakoś wydaje mi się to lepszym rozwiązaniem. 'Jak coś jest do wszystkiego to jest do niczego' tongue.gif
M4chu
sf: nigdzie nie napisalem, ze klasa bedzie do wszystkich typow baz ;-) Chyba nie myslales, ze zrobie klase z dziesiatkami if-ow - w kazdej metodzie musialbym kozystac z innej funkcji, nie mowiac juz o roznicy skladni zapytan tongue.gif
silent
Cytat
z dziesiatkami if-ow

Od tego jest switch smile.gif
marcin96
a może zrobić ogólną abstrakcyjną klasę/zespół klas operujących na konkretnych danych, a dopiero w ich dzieciach definiować konkretnie pobieranie tych danych z bazy? Przemyśleć co jest wspólne dla każdegho typu bazy.. a co trzeba zdefiniować oddzielnie... Po co robić coś dwa, trzy, 10 razy, gdy można to zrobić raz i będzie bardziej elastyczne ;>))
M4chu
Cytat(silent @ 2004-08-19 22:37:29)
Od tego jest switch smile.gif

No to to dziesiatki switchow smile.gif Dobra dziesiatki to moze troche za duzo, ale w tamtym wypadku to praktycznie kazda funkcja - switch tongue.gif
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.