Napisane: 18.08.2008, 15:16:34 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Jak najbardziej można, ale moim zdaniem jest to troszeczkę bez sensu. Rozbijanie wszystkiego na siłę na oddzielne funkcje składowe (metody) jest co najmniej dziwne - ani to szybkie (więcej kodu), ani funkcjonalne, użyteczne. Rozbicie ma sens, jeśli można wywołać jedną metodę, a drugą już nie, jeśli obie są wymagane na raz, to lepiej jest aby przyjmowały parę argumentów (ale też nie za dużo, jak więcej to znaczy, że inaczej trzeba to rozwiązać, np. przez obiekt z danymi). Więc to czy będzie dwie metody wywołane, czy jedna, zależy od tego jak dokładnie działają. |
Forum: Object-oriented programming · Podgląd postu: #506564 · Odpowiedzi: 20 · Wyświetleń: 4 506 |
Napisane: 6.08.2008, 09:14:25 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Nie wiem czy dobrze rozumiem pytanie, ale wydaje mi się że powinieneś poczytać o MVC (tematów jest do licha i ciut). Ogólnie chyba chodzi Ci o wydzielenie pewnych warstw, wtedy w widoku nie powinno być pobieranie danych, dane powinny być do niego przekazane... ale poczytaj i powiedz czy o to Ci chodziło. |
Forum: Object-oriented programming · Podgląd postu: #501810 · Odpowiedzi: 4 · Wyświetleń: 1 475 |
Napisane: 4.08.2008, 16:36:02 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
=========EDIT========== Indexes: "table_pkey" PRIMARY KEY, btree (id) CLUSTER Czyli masz CLUSTER założony na index na id? Jeśli tak, to trochę to bez sensu jest ;] Co do count(*) to u mnie (normalny komp 3gb ram'u) zajmuje 11-12s (na 30milionach krotek o takim samym rodzaju jak Twoje) Co do count, poczytaj: http://www.varlena.com/GeneralBits/120.php http://wiki.postgresql.org/wiki/Slow_Counting może coś wybierzesz. Ale ogólnie jeśli w większości zapytań z count, ogranicza się do małego zbioru wyników, to nie będzie to takie obciążające. A zapomniałem o tym, że PostgreSQL ma już optymalizację, i count(*) działa na innych zasadach niż w niektórych bazach, więc "trik" z 1 nie działa już. |
Forum: PostgreSQL · Podgląd postu: #501160 · Odpowiedzi: 10 · Wyświetleń: 3 097 |
Napisane: 4.08.2008, 15:37:59 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
|
Forum: PostgreSQL · Podgląd postu: #501148 · Odpowiedzi: 10 · Wyświetleń: 3 097 |
Napisane: 6.08.2008, 08:49:40 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
|
Forum: Object-oriented programming · Podgląd postu: #501795 · Odpowiedzi: 5 · Wyświetleń: 1 266 |
Napisane: 2.08.2008, 00:35:12 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Na początku tak się wydaje, że tylko ładniej, jak zaczniesz pojmować o co w tym chodzi, to zaczniesz rozumieć jaka jest w tym siła. Programowanie obiektowe, to nie jest jedna klasa, czy dwie, to wiele współpracujących ze sobą obiektów, ale aby to zrobić użytecznie, ładnie i elastycznie trzeba dużo czasu. Moim zdaniem powinieneś zainwestować w książkę (choć nie powinno się brać tego co autor pisze jak prawdę, bo czasem mają głupie poglądy), poczytać kod jakiś prostych rzeczy napisanych obiektowo, czy chociażby je wykorzystać. Wtedy zrozumiesz jak to działa, bo samemu dochodząc bez przykładów, to zajmie wieki... Spróbuj zintegrować swój projekt z Propel, poużywać go, na pewno wiele się dzięki temu nauczysz. @marekc12 Uważaj na to co znajdziesz w internecie, bo czasem niby mądre osoby, a głupoty piszą. Powinieneś zacząć od tego co ma ten obiekt robić, jaki ma zakres obowiązków, a potem dopiero wyszczególniać metody i właściwości. Czyli np. ma łączyć się z bazą i umożliwiać wykonywanie kwerend na niej. Co jest z interfejsu, wykonywanie kwerend, teraz pytanie jak to komplikować: - można podzielić na dwa rodzaje, te co zwracają coś (SELECT) i te co nie zwracają (UPDATE/INSERT itp) więc można je rozdzielić, i wtedy np. jedna metoda zwraca tablice rekordów, a druga nic... czy jakkolwiek, ale wszystkie mysql_*() powinny być w jednej klasie, a inne korzystać tylko z jej interfejsu. |
Forum: Object-oriented programming · Podgląd postu: #500279 · Odpowiedzi: 25 · Wyświetleń: 4 530 |
Napisane: 1.08.2008, 09:29:27 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
ale czy konieczne jest trzymanie zbędnych wiadomości? jak obydwie strony ja usuną, to po co mi ona ma miejsce w bazie zajmować? Takie rzeczy lepiej przechowywać, bo mogą się potem przydać w razie jakiś kłopotów. Ludzie wysyłają dziwne wiadomości i lepiej je zawsze mieć. EDIT: zresztą jak się nie mylę to tak robią większe portale społecznościowe, a na pewno mają jakiś cel w tym. |
Forum: Hydepark · Podgląd postu: #499944 · Odpowiedzi: 26 · Wyświetleń: 4 704 |
Napisane: 24.07.2008, 15:18:27 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Może nie za piękne... Ważne w deklaracji "SETOF "
EDIT: parę poprawek EDIT2: poprawiam to co napisał phpion, aby był poprawny przykład, jakby ktoś sszukał |
Forum: PostgreSQL · Podgląd postu: #497233 · Odpowiedzi: 6 · Wyświetleń: 3 139 |
Napisane: 4.07.2008, 17:57:15 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
To co napisał l0ud
lub
|
Forum: Object-oriented programming · Podgląd postu: #489591 · Odpowiedzi: 7 · Wyświetleń: 2 505 |
Napisane: 21.06.2008, 15:25:39 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Po pierwsze, po co używać funkcji, to jest bez sensu. Po drugie, przecież pisze co jest nie tak, Cytat function concat(unknown, integer) does not exist Ty masz concat(text, text). Jak już chcesz używać tej funkcji, to rzutuj to co przekazujesz na typ TEXT, (w ten sposób "concat(cos::TEXT, 'inne'::TEXT) ") i powinno wywoływać funkcję która już istnieje. Pamiętaj że funkcje w PG, to nie w PHP, gdzie nie ma przeciążenia. (PHP nie rozróżnia funkcji pod względem przyjmowanych parametrów) |
Forum: PostgreSQL · Podgląd postu: #484583 · Odpowiedzi: 2 · Wyświetleń: 1 857 |
Napisane: 19.06.2008, 10:53:50 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Tam gdzie masz zainstalowany PG masz folder "data" czy w nim masz "pg_tblspc"? Bo może po prostu coś się stało z plikami danych, a tych podczas reinstalacji pg nie rusza. |
Forum: PostgreSQL · Podgląd postu: #483868 · Odpowiedzi: 6 · Wyświetleń: 2 542 |
Napisane: 9.06.2008, 12:14:10 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Prawdopodobnie masz ustawione inne domyślne kodowanie bazy, zmień je na takie jak masz na starej bazie. @ShadowD Tu wynika że korzysta z kodowania latin1_swedish_ci, a mimo że jest nie poprawne, to nie powinien zmieniać, bo jest taka zasada, jak program umieści dane w bazie i je odczyta, to niezależnie jakie jest w niej kodowanie dostanie to samo, czyli ze znakami. Tylko wtedy programy które poprawnie to rozpoznają wyświetlają krzaczki. |
Forum: MySQL · Podgląd postu: #480338 · Odpowiedzi: 4 · Wyświetleń: 1 364 |
Napisane: 9.06.2008, 09:13:50 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Możesz wybrać grupę np. 20 rekordów, wybierając przedział losowo (jedynie początek wystarczy losowo wybrać), a z tej grupy po rand() te 5, co prawda to spowoduje że będą występować tylko blisko siebie dane, ale da to złudzenie losowości, jeszcze można co najwyżej wykorzystać indeksowane kolumny do różnych sortowań. |
Forum: MySQL · Podgląd postu: #480291 · Odpowiedzi: 3 · Wyświetleń: 1 110 |
Napisane: 3.06.2008, 12:49:45 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
@Gecco Nie będę pisał czegoś co już jest napisane http://propel.phpdb.org/trac/wiki/Users/Do...n/1.2/BasicCRUD Tu masz przykład wykorzystania tego w ORM, tylko że on daje o wiele więcej. Mała kopia z powyższego linku:
BookPeer to właśnie DAO, metoda retrieveByPK() pobiera jeden wiersz o zadanym kluczu głównym, oczywiście zwraca go jako obiekt AR czyli Book, metody set*() ustawiają wartości pól, get*() pobierają, save() zapisuje aktualny stan obiektu do bazy. W tym przypadku save() wywołuje update, ale jak stworzysz obiekt Book i nadasz mu wartości i dasz save() to wtedy wykona insert. Co do pobierania wielu to masz metodę w BookPeer::doSelect( Criteria $c ), która zwraca array obiektów (choć lepiej było aby zwracało iterator, ale może w nowej wersji 1.3 to zmienili) Book, jak nie ma spełniających Criteria to zwraca pustą tablicę. Co do Criteria, czyli warunków to znów kopię dam:
co odpowiada
i taki obiekt $c przekazujesz do BookPeer::doSelect() i ono wybiera te rekordy co spełniają te kryteria. |
Forum: Object-oriented programming · Podgląd postu: #478281 · Odpowiedzi: 10 · Wyświetleń: 2 932 |
Napisane: 23.05.2008, 15:37:26 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
|
Forum: PostgreSQL · Podgląd postu: #474504 · Odpowiedzi: 6 · Wyświetleń: 2 141 |
Napisane: 23.05.2008, 12:56:59 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Spróbuj tak:
(to automatyczne formatowanie chyba się nie nadaje do bardziej złożonych zapytań) |
Forum: PostgreSQL · Podgląd postu: #474461 · Odpowiedzi: 6 · Wyświetleń: 2 141 |
Napisane: 14.05.2008, 08:55:36 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
@netmare Zaczynasz od czegoś, od czego nie powinieneś, bo klasa do obsługi sesji jest specyficzna, tak jak napisał ayeo lepiej od razu użyć session_set_save_handler(), bo to przysłania sposób działania, a nadal możesz użyć klasy do obsługi. Jakbym zaczął jednak od innego problemu, bo na początek zazwyczaj lepiej zacząć od prostych rzeczy. |
Forum: Object-oriented programming · Podgląd postu: #471131 · Odpowiedzi: 8 · Wyświetleń: 2 130 |
Napisane: 6.05.2008, 11:14:13 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Można Crona, można trigger ale to przy małym obciążeniu, można też to i to, czyli triggery które robią z grubsza, wiedzą ile było głosów i jak jest średnia więc mogą aktualizować na tych informacjach, z małą dokładnością, ale wynik miej więcej będzie od razu widoczny, a Cron potem zlicz dokładniej. (bo mi nic nie wiadomo o tym aby odpalały się jakieś rzeczy automatycznie co jakiś czas na bazie) |
Forum: Bazy danych · Podgląd postu: #468473 · Odpowiedzi: 5 · Wyświetleń: 1 750 |
Napisane: 1.05.2008, 21:57:40 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Wiesz, i tak będziesz miał je jakiś identyfikowane, przecież masz je w wersjach językowych, więc jakoś nie widzę różnicy, czy zapisuje się wiadomość, czy tylko jej identyfikator, a przy wyświetlaniu jest dopiero na prawdę pobierana... (wyświetlani/wysyłanie czy cokolwiek innego) |
Forum: PHP · Podgląd postu: #467110 · Odpowiedzi: 13 · Wyświetleń: 2 137 |
Napisane: 17.04.2008, 23:23:50 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Instancję klasy A możesz przekazywać do tych dwóch pozostałych obiektów, a i tak obiekt klasy A będzie jeden.
Dziedziczenie wykorzystujemy kiedy jest logiczne, a nie kiedy jest nam wygodnie. |
Forum: Object-oriented programming · Podgląd postu: #464124 · Odpowiedzi: 11 · Wyświetleń: 3 287 |
Napisane: 9.04.2008, 14:18:45 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Zerknij tutaj Temat: this metoda i cos jeszcze To nie do końca to samo, na pewno to z SimpleXML nie jest "Fluent Interfaces" bo tyczy się ono jednego obiektu a SimpleXML zwraca inny obiekt do którego się odnosimy... Ale ogólnie chodzi o zwracanie obiektu do którego mamy od razu dostęp. Czy to będzie return $this, czy return new CosTam(), to nie jest ważne. |
Forum: Object-oriented programming · Podgląd postu: #462536 · Odpowiedzi: 3 · Wyświetleń: 1 983 |
Napisane: 9.04.2008, 07:26:34 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
http://xdebug.org/ To jest chyba właściwie jedyny, do tego trzeba program do interpretacji tych wygenerowanych plików, ale link do niego masz w dokumentacji. Jeśli chcesz się pobawić w debugging to ładny opis jak skonfigurować i jak działa masz na blogu Ludvik'a http://ludvik.pl/2007/09/11/eclipse-pdt-de...-z-xdebug-cz-1/ |
Forum: PHP · Podgląd postu: #462401 · Odpowiedzi: 3 · Wyświetleń: 1 077 |
Napisane: 8.04.2008, 11:25:33 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
W tak zdefiniowanym przez Ciebie schemacie, tak. Ja bym co prawda inaczej to zrobił, abym mógł w przyszłości dodać dowolną sondę... ale nie tego tyczyło się pytanie. |
Forum: Bazy danych · Podgląd postu: #462091 · Odpowiedzi: 4 · Wyświetleń: 1 497 |
Napisane: 5.04.2008, 22:33:38 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Po pierwsze oduczyć się tych głupot z MySQL, jak się grupuje, to się grupuje.
Nie mówię, że to jest najlepsze, ale działa. |
Forum: PostgreSQL · Podgląd postu: #461283 · Odpowiedzi: 1 · Wyświetleń: 1 355 |
Napisane: 6.04.2008, 21:42:38 | |
Grupa: Zarejestrowani Postów: 793 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Czytaj dokumentację, choć przyznam kiepska. Cytat The || operator is "concatenate" - it joins together the two strings of its operands.
To powinno pójść na SQLite, jak na wielu innych bazach danych, bo to jest zwyczajowy operator łączenia. |
Forum: Bazy danych · Podgląd postu: #461570 · Odpowiedzi: 4 · Wyświetleń: 2 506 |
Nowe odpowiedzi Brak nowych odpowiedzi Popularny temat (Nowe) Popularny temat (Brak nowych) |
Sonda (Nowe) Sonda (Brak nowych) Zamknięty temat Przeniesiony temat |
Wersja Lo-Fi | Aktualny czas: 13.06.2024 - 04:21 |