![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Prosta rzeczy, ile różnych obliczeń, operacji itp. robicie w bazie, a ile w tym czym programujecie (bo do PHP nie musimy się ograniczać)?
Bo ja dość sporo operacji, jeśli mogę przerzucam na bazę, z prostego powodu zrobi to szybciej, nie tylko że można sobie funkcje pisać w czym się podoba (prawie) ale też że niektóre rzeczy są optymalizowane. Wiadomo count() itp. rzeczy robi się na bazie, ale czasem można o wiele więcej, np. system trigger'ów które robią odpowiednie akcje zależne, zamiast pisania tego w kodzie aplikacji. Różne obliczenia na danych z bazy, gdzie zwraca się tylko wynik. Jak to u Was wygląda, bo kiedyś spotkałem się z opinią że lepiej nie używać niczego co oferują bazy, bo przy wdrążeniu na inną bazę robią się schody. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@Black-Berry:
Jeśli do danej operacji potrzeba wykonania 20 zapytań to użycie triggerów nie wyeliminuje pozostałych 19 jak sugerujesz. Zostaną one i tak wykonane ale zostaną uruchomione bezpośrednio po stronie bazy danych. Aplikacja kliencka odpali jedynie zapytanie, które spowoduje uruchomienie triggera. To tak dla ścisłości. Ale wracając do głównego tematu wątku. W pracy aktualnie staramy się pisać wszystko z użyciem PostgreSQL. Jak wiadomo daje on dużo większe możliwości niż MySQL (triggery w MySQL są po prostu tragiczne...). Staramy się jak najwięcej pracy zrzucić właśnie na bazę danych. Przykładowo: drzewo kategorii z produktami. Podczas aktualizacji powiązań produkt <-> kategoria automatycznie aktualizowana jest liczba produktów w danej kategorii oraz kategoriach nadrzędnych. Zdecydowanie ułatwia to sprawę szczególnie iż do pracy używamy Symfony. Zastosowanie takiej funkcjonalności bez triggerów komplikowałoby pracę o tyle, iż należałoby (w tym przypadku) modyfikować pliki backendu o "ręczne" wywoływanie koniecznych korekt w bazie. Ten post edytował phpion 21.09.2008, 11:37:53 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 00:06 |