Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza danych i cms, czyli jaki sposób dostępu do danych będzie najlepszy?
jwest
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 12.08.2008
Skąd: Toruń

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


Jestem w lekkiej rozterce, mianowicie nie wiem w jaki sposób podejść do problemu komunikacji systemu CMS z bazą danych. Odpada pomysł natywnego sterowania zapytaniami do bazy MySQL bo co jeżeli będzie potrzeba postawienia na PostrageSQL? Ano właśnie... Do głowy przychodzą mi 3 rozwiązania mojego problemu:

1. Użycie wbudowanej w php klasy PDO
Jedyne co przemawia przeciw to tak naprawdę wydajność (nie wiem sam nie testowałem tylko czytałem na ten temat, mogę się mylić)

2. "Sterownik" oparty o uniwersalne metody klasy dla różnych typów danych
W zasadzie coś takiego już mam, ale czy powinienem z tego korzystać? Wygląda to mniej więcej tak:

-konstruktor łączy się z bazą, destruktor rozłącza, standart...
-zapytanie buduję np. tak:
  1. $db->select('tabela_z_danymi')->where('id','5')->limit(1)->e();

lub tak:
  1. $db->add('tabela_z_danymi', $tablica_zmiennych_do_wprowadzenia)->e();

Czy takie wytwór to dobry pomysł? Gorzej jest w takim przypadku z bardziej rozbudowanymi zapytaniami korzystającymi np. z funkcji matematycznych bazy danych.


3. Zbudowanie czegoś jak powyżej ale zastąpienie tego łańcucha metod zwykłym zapytaniem SQL np.:
  1. $db->query('SELECT * FROM tabela_z_danymi');

Czy nie ma jako takich różnic w poleceniach SQL?

Marzy mi się możliwość podmiany fragmentu kodu/pliku po którym będę miał pewność że cała aplikacja będzie działała bez względu na to do jakiej bazy danych się ją przypnie.

Czy mogę prosić o wskazówki doświadczonych programistów PHP?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Jest jeszcze 4-ta możliwość. Gotowe rozwiązania (Doctrine lub Propel).
Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Ja bym radził wykorzystanie gotowych sterowników a co do 3 to musisz mieć możliwość zarówno budowania zapytań w sposób:
  1. $db->add('tabela_z_danymi', $tablica_zmiennych_do_wprowadzenia)->e();


Jak i wprowadzania zwykłych zapytań sql. Popatrz, jak robią to popularne frameworki (Zend, Symfony)

Ten post edytował Pilsener 27.04.2010, 11:21:58
Go to the top of the page
+Quote Post
nemis
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 18.07.2007

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


W przypadku uzywania PDO, zapytania sa modyfikowane przed puszczeniem do serwera. Proponuje zebys przyjal ostatnie rozwiazanie w poleczniu z PDO.
Osobiscie korzystam jednak z ORM.
Go to the top of the page
+Quote Post
sebastiankozub
post
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 1
Dołączył: 17.02.2008
Skąd: Leszno

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


a ja bym radził rozpocząć od zwykłego wysyłania zayptań przez query() a potem w miare rozwoju samo Ci się wyjaśni czego potrzebujesz i zbudujesz sobie swoją klasę, albo i nie bo z tego co widzę Twoja nie rożni się zbytnio od dostępnej np: w Zend, a znając życie wszystkich funkcji, które ma Zend nie zaimplementowałeś...
Go to the top of the page
+Quote Post
jwest
post
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 12.08.2008
Skąd: Toruń

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


Cytat(sebastiankozub @ 28.04.2010, 03:01:37 ) *
a ja bym radził rozpocząć od zwykłego wysyłania zayptań przez query() a potem w miare rozwoju samo Ci się wyjaśni czego potrzebujesz i zbudujesz sobie swoją klasę, albo i nie bo z tego co widzę Twoja nie rożni się zbytnio od dostępnej np: w Zend, a znając życie wszystkich funkcji, które ma Zend nie zaimplementowałeś...


No na pewno nie udało mi się zaimplementować wszystkiego (IMG:style_emoticons/default/smile.gif) dodałem tylko te opcje z których korzystam jeżeli miałbym używać czegoś nowego dodałbym kolejną metodę do klasy.

Czy korzystając z zapytań SQL są jakieś różnice między budowaniem zapytań np. dla bazy MySQL a PgSQL? Bo niby sql to sql, ale nie mam doświadczenia
Go to the top of the page
+Quote Post
Riklaunim
post
Post #7





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Cytat(jwest @ 28.04.2010, 08:43:08 ) *
Czy korzystając z zapytań SQL są jakieś różnice między budowaniem zapytań np. dla bazy MySQL a PgSQL? Bo niby sql to sql, ale nie mam doświadczenia

Są różnice w składni zapytań, czy w definicjach tabel. Zazwyczaj nieduże i proste SELECT/UPDATE/DELETE powinny być zgodne między MySQL, SQLite czy Postgresem.
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: 21.12.2025 - 18:02