![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki problem, albo raczej dylemat. Sprawa przedstawia się mniej więcej tak: W bazie danych będę przechowywał pewne wartości (typu float), np. w1, w2, w3, w4, w5. Potrzebuję również sumę tych wartości. I teraz moje pytanie - czy bardziej opłaca się dorobić dodatkowe pole w bazie, np. suma i w nim przechowywać sumę tych wartości, czy lepiej dodawać je za pomocą PHP już w skrypcie? Dodam, że baza danych będzie przechowywała dużo informacji, do kilku tysięcy rekordów. -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
W oby przypadkach nie zaszkodzi dorzucić dodatkowego pola.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 7.03.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wiesz, generalnie raczej idzie się w stronę wydajności, bazy mają tyle wolnej przestrzeni, że mało kto wykorzystuje je na maksa.
Ale.. z drugiej strony jeśli są to proste obliczenia typu dodawanie to nie wiem czy ma to sens. Ostatnio robiłem taką tabele, która robiła cache pewnych wyliczeń bo wyliczenia na bieżąco trwały strasznie długo. Ale jeśli chodzi o dodawanie samo czy równie proste operacje to bym się nie przejmował. Pozdr |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
W oby przypadkach nie zaszkodzi dorzucić dodatkowego pola. Nie zgodzę się. Wszystko zależy od tego, do czego to pole sumy będzie wykorzystywane. Jeżeli będzie to jedno z pól w warunku WHERE lub będzie używane podczas sortowania to wówczas warto dodać go jako nową kolumnę (z racji użycia indeksu, który może być na niej założony). Jeśli natomiast suma ta będzie tylko wyświetlana w celu informacyjnym to dodatkowa kolumna wydaje się zbędna. Sumę pól można obliczać nie tylko w PHP, ale i bezpośrednio na poziomie SQLa. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli będzie to jedno z pól w warunku WHERE lub będzie używane podczas sortowania to wówczas warto dodać go jako nową kolumnę (z racji użycia indeksu, który może być na niej założony). Jeśli natomiast suma ta będzie tylko wyświetlana w celu informacyjnym to dodatkowa kolumna wydaje się zbędna. Dokładnie suma będzie wyświetlana jedynie w celu informacyjnym. W takim razie będę obliczał ją w locie ![]() Dzięki wszystkim za odpowiedzi. pzdr -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tu nie chodzi wcale o dylemat wydajność/oszczędność miejsca tylko o wydajność/spójność danych. Pole sumy jest w porządku o ile zagwarantujesz, że będzie zawsze aktualna, a tu już łatwo o błędy. Zauważ, że np. skrypty głosowania/oceniania na dużych portalach odświeżają wyniki np. co 3 minuty. Nie wyobrażam sobie żeby liczyły sumy co każde odświeżenie. Tak naprawdę na twoje pytanie nie ma jednoznacznej odpowiedzi - zależy od rozmiaru bazy i jej obciążenia.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Dokładnie suma będzie wyświetlana jedynie w celu informacyjnym. W takim razie będę obliczał ją w locie ![]() Ok więc jak przyjdzie potrzeba zsumowania tych wszystkich rekordów plus trochę operacji grupowania bądź inne to się odezwij. Sądzę, że zdarzy się tak NA PEWNO. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ok więc jak przyjdzie potrzeba zsumowania tych wszystkich rekordów plus trochę operacji grupowania bądź inne to się odezwij. Sądzę, że zdarzy się tak NA PEWNO. Nie, nie zdarzy się - NA PEWNO. -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Taki lekki OT:
Cytat Dodam, że baza danych będzie przechowywała dużo informacji, do kilku tysięcy rekordów. Kilka tysięcy rekordów to bardzo niewielka ilość.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:10 |