Technologie i narzędzia: język PHP 5, Java, JavaScript, Python, system Zend Framework, Django, biblioteka jQuery, Smarty, platforma Eclipse, MySQL, SVN, CVS, UML, Firefox.
WebProgramming - wszystko o serwisach internetowych
O serwisach internetowych.
[sql] Trik w MySQL
Tworząc stronicowanie listy (typu “Strona: 1 2 3 4 …”) musimy znać liczbę wszystkich rekordów, aby obliczyć liczbę wszystkich stron. W ostatnim artykule podałem przykład jak nie należy się do tego zabierać, ale jak to zrobić, aby było optymalnie?
[sql|php] Obiektowa pułapka.
Nakładek obiektowych na relacyjną bazę danych jest coraz więcej - aktualnie jednymi z bardziej popularnych są te oparte na wzorcu Active Record. Niewątpliwie ułatwiają one prace programiście i sprawiają, iż kod staje się czytelniejszy i lżejszy… mogą wprowadzać jednak pewne zagrożenie.
[sql] Budowa forum - dodatek.
Mała uwaga do idei budowy forum, która została przedstawiona w artykule “Budowa forum“. Chcąc wyświetlić wszystkie komentarze (drzewko) dla danego komentarza (w naszym przypadku dla #1) nie wystarczy posortować wyników po path - możemy wtedy otrzymać listę w złej kolejności, na przykład dla danych:
| id | parent_id | title | …. | path |
| 1 | 0 | Wątek główny | …. | |
| 2 | 1 | Wiadomość pierwsza | …. | 0001| |
| 3 | 2 | Wiadomość pod pierwszą | …. | 0001|0002| |
| 4 | 1 | Wiadomość druga | …. | 0001| |
Sortowanie tylko po path spowoduje, iż pozycja #4 znajdzie się pod #3, a powinna się znaleźć pod #2. Aby tego uniknąć wystarczy posortować według (CONST_SLC to maksymalna liczba cyfr):
-
CONCAT(path, LPAD(id, CONST_SLC, "0"), "|") ASC
Dzięki temu uzyskujemy w łatwy sposób kolejność pozycji jak w drzewku - bez konieczności generowania rekurencyjnego.
[sql|php] Budowa forum.
Ponownie mam do zaproponowania ciekawe rozwiązanie dość powszedniego problemu - tym razem padło na sposób reprezentacji drzewiastego forum w bazie danych. Drzewiasty oznacza w tym momencie, iż odpowiedź na daną wiadomość pojawia się pod tą wiadomością (coś w stylu komentarzy w serwisie onet.pl).