Poprzednia / następna pozycja
Mechanizm bardzo przydatny, umożliwiający przechodzenie do następnego lub poprzedniego rekordu z poziomu wybranego już rekordu. Dzięki temu użytkownik nie musi wracać do listy czy też z poziomu listy otwierać dziesiątek stron w osobnych zakładkach by je wszystkie przejrzeć.
Rodzic i dziecko kategorii / typu
Jednym z elementów rozbudowanego systemu CRM, nad którym pracuje był wybór typu projektu z podziałem na główny typ oraz podtyp. Można to zrealizować poprzez stworzenie dwóch tabel (typy i podtypy połączone relacją) lub jednej (wykorzystując kolumnę, która będzie przechowywać informację o rodzicu). Oba rozwiązania mają jeden większy problem do rozwiązania, jeśli będziemy chcieli dać wybór pozycji poprzez jedno pole typu <select> trzeba to najpierw posortować. We wpisie skupię się na przykładzie z jedną tabelą.
CREATE INDEX - przyspieszenie zapytań
Pora sobie odpowiedzieć na pytanie kiedy i w jaki sposób warto zastosować index by przyspieszyć nasze zapytania.
Sprawdzanie czy termin jest wolny
Wydawałoby się, że sprawdzenie czy w danym terminie są wolne pokoje to coś prostego. Przysporzyło mi to jednak dość dużo problemów i z pomocą przyszedł mi CoYoT (#php.pl), który podesłał mi gotowe zapytanie, które sam kiedyś opracował.
DISTINCT MySQL vs PostgreSQL
Pomagałem dzisiaj na IRCnet (#php.pl) w zapytaniu do bazy MySQL, które polegało na wybraniu rekordów z najmniejszą ceną pogrupowanych według wybranej kolumny. Bardzo szybko napisałem jak to ma wyglądać w PostgreSQL, ale niestety w MySQL użycie DISTINCT jest trochę ułomne.
Oferta wyróżniona przez x dni
Czas płynie nieubłaganie, a jakiekolwiek nadzieje, że będzie trochę więcej czasu przy skończeniu kolejnego projektu rozwijają się bardzo szybko. Obiecałem sobie jednak, że postaram się umieszczać przynajmniej jeden wpis na miesiąc, aby mój blog nie podzielił losu innych programistów, którzy pochłonięci pracą / rodziną / nowymi doświadczeniami życiowymi porzucili pisanie.
Sortowanie po NULL
Dla kuzyna przygotowuje stronę, która poświęcona jest piłce nożnej. Mamy tam między innymi tabele z punktami, przy czym na początku jest ona pusta i uzupełnia się dopiero przy pierwszy meczu. W tym miejscu pojawił się problem gdyż po uzupełnieniu kilku wyników na samej górze znajdywały się drużyny, które nie rozegrały żadnego spotkania, czyli miały wartość punktów równą NULL.
Ubuntu i programista PHP
Od dłuższego czasu moim systemem operacyjnym jest Ubuntu. Chciałbym na przykładzie wersji 7.04 przedstawić w jaki sposób poradzić sobie z instalacją i konfiguracją oprogramowania potrzebnego do pracy programiście php.
Wyzwalacze (triggers)
Jak obiecywałem jakiś czas temu, wracam do tematu procedur składowanych. Wyzwalacze (ang. triggers), bo o nich będzie mowa, stanowią bardzo wygodny mechanizm, który odciąża naszą aplikację od dodatkowych implementacji.
Wykorzystanie count()
Stanąłem przed problemem zliczenia wyników wyszukiwania z jednoczesnym wyeliminowaniem powtarzających się dokumentów, które wynika ze złączenia (0..n) tabeli dokumentów z komentarzami. Użycie DISTINCT na kolumnie wymusza użycie GROUP BY, a co za tym idzie zamiast zliczyć mi wszystkie dokumenty, otrzymuję informacji ile razy dany dokument się powtórzył. Na szczęście istnieje możliwość użycia DISTINCT w funkcji agregującej co umożliwia rozwiązanie problemu.
