Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Ktos dobry z algorytmiki? ;)  (Przeczytany 450 razy)

0 użytkowników i 2 Gości przegląda ten wątek.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Ktos dobry z algorytmiki? ;)
« dnia: 25 Października 2013, 21:12 »
zeby usunac jeden z hackow ktore wpisalem w silnik forum (sortowanie danych po dacie a nie po kluczach (id)), bylo to konieczne po scaleniu ze soba 3 for... potrzebowalbym czegos co ulozy wszystkie dane w bazie danych od nowa - innymi slowy posortuje po datach i przepisze ID na nowo - ale oczywiscie z uwzglednieniem pozostalych danych typu posortujesz userow to musisz ich powiazac z postami i tematami zeby ID sie zgadzaly. chetny ktos? :D


"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Ktos dobry z algorytmiki? ;)
« Odpowiedź #1 dnia: 28 Października 2013, 18:16 »
ja to w ogole mam pomysl jak to zrobic ale zastanawiam sie czy jest ktos madrzejszy ;)

zdradze ze pirewszy do pomocy sie zgodzil BagoZonde ale jeszcze sie nie pochwalil co zdzialal... generlanie chodzi o to, ze w bazie nie trzeba wiazac danych IDkami (primary key) bo sa jeszcze inne klucze.

moj pomysl - przynajmniej dla tabeli z uzytkownikami - to posortowanie danych i sztuczne wpuszczenie klucza nowego klucza glownego (chocby polautomatycznie do pliku CSV) i potem znow import do bazy z przypisaniem kolumn.

kazdy post ma autora ktory tez jest kluczem wiec przy sortowaniu tabeli z postami mozna sobie id_userow wygenerowac z autorow (nickow).

na pewno nie trzeba ruszac tabeli z definicja poszczegolnych subforow.
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1055
    • http://www.commocore.com
Ktos dobry z algorytmiki? ;)
« Odpowiedź #2 dnia: 28 Października 2013, 19:15 »
No hej, najprostszą metodą będzie utworzenie nowych tabeli na bazie iteracji wyników posortowanych względem daty i zachowanie starych kluczy w kolumnach pomocniczych, by przepisać kolejne relacje.
Wysłałem Ci info na priv. Tak na marginesie, patrząc na strukturę, część danych w polach niepotrzebnie się dubluje między tabelami, prosty join załatwiłby sprawę ale no cóż.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Ktos dobry z algorytmiki? ;)
« Odpowiedź #3 dnia: 28 Października 2013, 21:01 »
tworca miniBB ma swoiste podejscie do optymalizacji - z pewnoscia nie masz przez to dodatkowego zapytania zwiazanego z joinem \"\"

to akurat jestem w stanie zroumiec, bardziej mnie boli ze on w kodzie nie stosuje tabulacji, on to nazywa optymalizacja, ja burdelem :P

to co napsialem m/w opisuje to co przytoczyles. w tym co mi wyslales na priv... niekoniecznie trzeba wszystkie wymienione tabele obrabiac.

jestem zwolennikiem aby jak najmniej uzywac w tej operacji poza SQL posrednictwa jezykow programowania - mysle ze da sie to wszystko zrobic przez tworzenie odpowiendich zapytan, widokow, tabel tymczasowych, pomocniczych... po czym wyeksportowac calosc do CSV i wciagnac znow do bazy odpowiednio mapujac kolumny.
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1055
    • http://www.commocore.com
Ktos dobry z algorytmiki? ;)
« Odpowiedź #4 dnia: 29 Października 2013, 00:37 »
Hmm... Jeżeli chodzi o joiny i performance, to joiny niczemu tu nie szkodzą - to w końcu SQL - a masz przynajmniej jednolite dane.

Skoro nie widzi Ci się użycie PHP do iteracji, mogę zrobić Ci z tego zapytania, które będą wyciągały i insertowały. Nie potrzebujemy tutaj eksporta do CSV, bez jaj ;). Zastosowanie PHP po prostu jest najprostszą metodą i tak to się robi z reguły robi.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Ktos dobry z algorytmiki? ;)
« Odpowiedź #5 dnia: 22 Listopada 2013, 12:14 »
ten problem rozwiazalem sortujac same posty po dacie nadajac im auto id w nowej tabeli, wystarcza to do importu na nowy silnik, przy starym chyba tez by wystarczylo.
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"