Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Projektowanie aplikacji w PHP. Część druga.

Przechowywanie dynamicznych danych.

Uporządkowawszy naszą wiedzę o przechowywaniu konfiguracji systemu, zajmiemy się teraz przetrzymywaniem dynamicznych danych w naszej aplikacji. Omawiane dynamiczne dane to wszystkie informacje, które się często zmieniają, albo są zarządzane z poziomu przeglądarki. W typowej aplikacji byłby to na przykład tekst na stronie WWW czy elementy menu.

Istnieją dwa możliwe sposoby na przechowywanie dynamicznych danych - system plików i baza danych. W ostatnich latach to właśnie bazy danych takie jak MySQL, dzięki narastającej prostocie użycia, stały się najpopularniejszą metodą przechowywania danych. Podczas gdy praktycznie w każdym projekcie używam MySQL, nadal istnieje szereg sytuacji, w których użycie plików jest po prostu bardziej rozsądne. Jeśli nie jesteś zdecydowany co do sposobu przechowywania informacji, możesz sobie zadać klika prostych pytań:

  1. Czy aplikacja będzie przetwarzała wiele podobnych danych naraz?(np. suma faktur dla danego klienta w danym miesiącu)
  2. Czy aplikacja będzie gromadziła metadane dla jakichś trwałych obiektów?
  3. Czy zajdzie potrzeba zachowania powiązań pomiędzy stałymi elementami aplikacji?

Jeśli odpowiedź na jedno z tych pytań brzmi "tak", masz podstawy aby zastosować bazę danych. Typowe uzasadnienia użycia bazy danych to m.in. "Strona potrzebuje wyszukiwarki" albo "Strona musi przechowywać dane w kilku językach". To się może wydać dziwne, ale żadne z tych uzasadnień nie jest wystarczające, aby z czystym sumieniem użyć bazy danych, wręcz przeciwnie - przechowywanie danych w kilku językach w bazie danych może jedynie skomplikować sytuację. Wyszukiwanie na stronach WWW może być z powodzeniem wykonane przy użyciu darmowych narzędzi, takich jak htdig, a wielojęzyczność może być w prosty sposób obsłużona przez dobrze zorganizowany system plików.

Bazy danych prawdziwie prezentują swoją siłę dopiero wtedy, gdy przychodzi nam przetwarzać dane o jakimś kluczu, przechowywać metadane lub jakieś logiczne zależności. Prawdą jest, że mógłbyś tworzyć raporty w oparciu o pliki - tak też robiono, zanim bazy danych weszły w branżę - ale po co ponownie wynajdywać koło?

Przechowywanie metadanych także jest możliwe przy użyciu zwykłych plików. Można przechowywać w plikach same metadane, można też użyć w tym celu formatu XML lub innego i trzymać razem treść właściwą i metadane. Zwykle najlepszym rozwiązaniem jest użycie kombinacji plików i bazy danych. Weźmy na przykład system pozwalający użytkownikom na upload obrazków - na pewno będzie wydajniej, jeśli same obrazki przechowasz w plikach, a opisujące je dane w bazie danych, a poszukując informacji o nich nie będziesz "leciał" po plikach, tylko wyszukasz odpowiednie klucze w bazie. Baza danych przyda się także w przypadku przechowywania dokumentów tekstowych w systemie - zarówno samego tekstu, jak i opisujących go metadanych. Uprości to zarządzanie, konserwacje i ewentualne zmiany właściwości systemu, np. wersjonowanie, autorów, itp.

Bazy danych "błyszczą" także, gdy przychodzi nam przechować relacje między obiektami. Język SQL pozwala Ci w prosty sposób wyciągać wynik, nawet dla obiektu, który zajmuje kilka tabel lub baz danych, bez pisania ogromnych połaci XMLa, serializacji obiektów czy użycia jakiegoś "swojskiego" formatu. To zadanie także może być wykonane przy użyciu systemu plików, ale nie jest to z kolei solidne i eleganckie rozwiązanie. Podczas przechowywania takich danych za pomocą wspomnianej serializacji w zupełności tracimy przenośność danych i semantykę. XML z kolei zapewnia wspomniane cechy, ale nie dostarcza prostego interfejsu do pobierania danych - co znaczy, że musiałbyś się sporo natrudzić, aby zrekonstruować pierwotne obiekty.

Najczęstszym rozwiązaniem jest jednak kombinacja bazy danych i systemu plików, szczególnie w sytuacjach, gdy zachodzi potrzeba przechowania danych binarnych. Wyboru dokonuje się także w zależności od preferencji - niektórym łatwiej jest pracować z systemem plików niż z bazą danych i odwrotnie. Najlepiej jest jednak zachować preferencje dla siebie i skoncentrować się na wyborze w zależności od późniejszych osiągów.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (1)
...
Wtorek 15 Styczeń 2008 12:28:08 am - plurr

bardzo ciekawy artykul, czekam z niecierpliwoscia na obiecana nastepna czesc :)

pozdr.

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2017 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System