Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >

alegorn
Napisane: 24.05.2013, 19:36:59





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

w nested set nie musisz sie bawic w rekurencje, pobierasz cale drzewo/gałąź w jednym zapytaniu

jeśli po stronie php potrafisz wykorzystać że drzewo masz juz posortowane - jest szybciej. sprawdzałem.
  Forum: Przedszkole · Podgląd postu: #1047193 · Odpowiedzi: 2 · Wyświetleń: 340

alegorn
Napisane: 21.05.2013, 16:12:36





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

na początek - kartka i ołówek.
projektujesz bazę danych, musisz zaprojektować wszystkie relacje, encje...
nie da się opisać zasad projektowania bazy danych w trzech słowach..
hm.....
a może tak.

poczytaj o normalizacji (pierwsze 3 postacie na początek), bez tego nie da się zaprojektować żadnej dobrej bazy.
na początek musisz potrafić doprowadzić bazę minimum do 2 postaci, trzecia postać nie była by tutaj faux pas.

rozpisz na kartce tą bazę, w dalszych zadaniach masz pewne podpowiedzi, co ma się w niej znajdować.
tutaj masz trzy podstawowe encje : produkty, kody, aukcje, pola jakie są wymagane masz wymienione..
przeanalizuj i wyodrębnij dodatkowe encje ja np widzę: operator, być może czas doładowania

rozpisz na kartce wszystkie pola, jakie do tych encji należą, przeanalizuj relacje jakie zachodzą między nimi.

o ile widzę to relacje jakie zachodzą to
kody[n]-[1]produkt[n]-[1]aukcje
produkty[n]-[1]operator

o ile rozumiem zadanie, aukcja jest tutaj uproszczona, i chyba można poprzestać na jednej encji

czyli musisz wiedzieć o relacjach jeden do wielu, (wiele do wielu nie zaszkodzi także)

zadanie ostatnie - jest zbudowaniem odpowiedniego widoku.
jak uporasz się z prawidłowym projektem - będzie on tylko jego konsekwencją (relacji między tabelami).

a więc - poczytaj o normalizacji, kartka + ołówek i do dzieła, jak rozpiszesz encje, relacje między nimi, to siadasz do jakiegoś narzędzia którym przeniesiesz to na gotowy kod (jest tego cała masa..).
nie musisz znać dokładnych poleceń tworzenia tabel, musisz wiedzieć co chcesz osiągnąć.

widokiem chwilowo się nie przejmuj, jeśli zrobisz prawidłowo to co opisałem - bez problemu dasz radę zbudować taki widok
pozdrawiam,
J.
  Forum: MySQL · Podgląd postu: #1046489 · Odpowiedzi: 15 · Wyświetleń: 695

alegorn
Napisane: 27.12.2012, 13:29:33





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

uuuf, naucz się pisać wyraźniej, to co tu wypociłeś odrzuca po dwóch zdaniach.

jesli dodaje pusty wiersz - znakiem tego ze sql jest poprawny.

wywal sobie jakiś debug zapytania jakie wysyłasz na serwer. myślę że zapytanie masz skopane, sprawdz czy nie masz jakichś notice w php...

po tym co napisałeś, i informacji jaką dostarczyłeś mogę jedynie stwierdzić że skopałeś skrypt.
ta diagnoza jest moim zdaniem jedyną jaką można postawić przy takich informacjach jakie podałeś wink.gif

j.
  Forum: MySQL · Podgląd postu: #1014596 · Odpowiedzi: 8 · Wyświetleń: 639

alegorn
Napisane: 29.11.2012, 12:25:30





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

milon rekordow nie jest przeszkoda przy prawidlowo zaprojektowanej strukturze.

pozakładaj dobre indexy, pomyśl czy da się pozakładać partycje na tabeli.
explain, i profilowanie zapytań - wyłapanie wąskich gardeł, aktualnyi odpowiedni silnik db, dostosowanie platformy sprzętowej do projektu - i będzie dobrze. kilku-kilkunasto milionowe tabele nie są żadnym problemem.

j.

  Forum: MySQL · Podgląd postu: #1009184 · Odpowiedzi: 8 · Wyświetleń: 539

alegorn
Napisane: 28.11.2012, 14:54:21





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

pierwsze rozwiązanie ma sens pod jednym warunkiem nie będziesz wykonywał ŻADNYCH operacji na tym polu poza select

inaczej przeprojektuj tabele do relacji wiele_do_wielu

jest to klasyczny antywzorzec, i jako taki jest też opisany.
jesli potrzebujesz utrzymać hierarchię w danych - zainteresuj się strukturami do ich przechowywania.
masz ich kilka, i być może drzewko IP będzie dla ciebie najwygodniejszym rozwiązaniem

udało Ci się podać drugi z klasycznych antywzorców dla sql'a, a to nie mały sukces wink.gif
zainwestuj być może w jakaś książkę, jeśli planujesz dłuższą przygodę z bazami danych.


pozdrawiam,
J.
  Forum: MySQL · Podgląd postu: #1008991 · Odpowiedzi: 8 · Wyświetleń: 539

alegorn
Napisane: 23.11.2012, 12:12:17





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

do wyeksportowania najlepiej : insert

do pobrania select

podpowiedź : struktury drzewiaste.

zalecane : kurs php + SQL

jak się zastosujesz do tych rad, problem sam będziesz potrafił rozwiązać...

j.
  Forum: Przedszkole · Podgląd postu: #1007977 · Odpowiedzi: 2 · Wyświetleń: 177

alegorn
Napisane: 20.11.2012, 16:59:19





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

ha, TYLKO?
poczytaj sobie dokumentacje do 5.6 wink.gif
http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html

jesli przeszedles na myisam - to kazda operacja ktora cos zmienia (insert/update/delete) na danej tabeli - powoduje jej blokowanie. wtedy wlasnie nawarstwia sie oczekiwanie i wywala serwer

zalecane rozwiazanie - upgrade serwera do wersji 5.6 i bedziesz mial problem z glowy...
rzynajmniej na jakis czas - jesli zwiekszy ci sie ruch wtedy bedziesz moze musial przeprojektowac od nowa ta aplikacje.


edit.
myisam i szybko - to przestarzala opinia, zalecam odswierzenie wiedzy.

http://dimitrik.free.fr/blog/archives/11-0...11-30-2012.html
  Forum: MySQL · Podgląd postu: #1007311 · Odpowiedzi: 8 · Wyświetleń: 647

alegorn
Napisane: 27.09.2012, 15:08:00





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

chyba lapie o co biega.

nie sprawdzalem, ale cos w ten desen powinienes isc (jesli prawidlowo zrozumialem co chcesz zrobic)
  1. UPDATE
  2. tabela t1 JOIN tabela t2 USING (entity_id)
  3. SET t1.value = 'Page'
  4. WHERE
  5. t1.value = 'PRODUCTS '
  6. AND t2.value = 'ATRAPY'


j.

edit: literowka
  Forum: MySQL · Podgląd postu: #995581 · Odpowiedzi: 5 · Wyświetleń: 412

alegorn
Napisane: 23.08.2012, 08:07:43





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

poszukaj algorytm levenshteina
o ile wiem, sa juz gdzies gotowe procedury na mysql...



hmmmm nawet juz znalazlem : http://www.artfulsoftware.com/infotree/queries.php

j.
  Forum: MySQL · Podgląd postu: #987420 · Odpowiedzi: 7 · Wyświetleń: 285

alegorn
Napisane: 22.08.2012, 13:34:34





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

musisz zlaczyc tabele z sama soba

cos a'la:

  1. SELECT
  2. b.*
  3. FROM
  4. tabela a
  5. JOIN tabela b USING(nazwa)
  6. WHERE
  7. a.id = 123

j.

edit: korekta
  Forum: MySQL · Podgląd postu: #987225 · Odpowiedzi: 8 · Wyświetleń: 576

alegorn
Napisane: 9.08.2012, 16:27:55





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

slowo klucz: left join


  1. SELECT u.id, u.login,g.grupa,z.zadanie
  2. FROM user u
  3. LEFT JOIN grupa g ON u.id =g.userId
  4. LEFT JOIN zadanie z ON u.id=z.userid



powinno banglac, ale nie sprawdzalem

j.
  Forum: Przedszkole · Podgląd postu: #984322 · Odpowiedzi: 1 · Wyświetleń: 132

alegorn
Napisane: 24.07.2012, 11:26:50





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

zainteresuj sie czym jest ten string który próbujesz parsować
jak juz rozkminisz ze to jest json, to sie zainteresuj
json_encode oraz json_decode

mysle ze dalej juz bedzie z gorki.

j.
  Forum: Przedszkole · Podgląd postu: #980238 · Odpowiedzi: 10 · Wyświetleń: 2 924

alegorn
Napisane: 20.07.2012, 12:46:06





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

hmmm...wszystkie te polecenia o ktore pytasz znajdziesz z dokladnym opisem w manualu

na szybko - count zliczanie wierszy (tutaj - wierszy ktore zostana zgrupowane)
group by - grupuje wynik wg wybranej kolumny (tutaj jest to imie opiekuna)
having - wyswietla tylko te wiersze ktore spelniaja warunek - tutaj ile >2

indexy

uuf, to juz raczej bardziej o teorii sql'a i relacyjnych bazach danych, niz sama ksiazka do nauki sql'a


dosc duzo ciekawostek i swietnych rad znalazlem na roznych blogach np. http://blog.ksiazek.info << akurat tego moge z czystym sumieniem polecic, tam takze znajdziesz o indexach..

j.
  Forum: Bazy danych · Podgląd postu: #979303 · Odpowiedzi: 5 · Wyświetleń: 464

alegorn
Napisane: 19.07.2012, 14:19:35





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

jesli masz w zapytaniu order by - wymuszasz poniekad stosowanie tabel tymczasowych.
nie zawsze sie da uniknac tempa. i nie zawsze jest to problem dla zapytania.
problem pojawia sie wtedy - gdy ilosc danych jaka zapisujesz do tempa - przekracza dostepnej pamieci (ramu), wtedy nastepuje to co najgorsze - zapis na dysk.

rada? ograniczaj maksymaline ilosc danych, do momentu w ktorym masz sortowac dane. (jesli wrecz nie zrezygnowac z sortowania)
czasem, lepszym rozwiazaniem jest wlasne przygotowanie tabeli tymczasowej. z pozakladanymi odpowiednimi indeksami mozna uzyskac rewelacyjne czasy dostepu.
pamietajac ze innodb domyslnie sortuje wg najwazniejszego indeksu - nie wg kolejnosci dodania - da sie uzyskac tabele z posortowanymi danymi gotowa do natychmiastowego uzycia

czasem, przy tworzeniu takich tymczasowych tabel, warto sie zaineresowac silnikiem memory.
zajmuje ram - ale daje rewelacyjne czasy wink.gif (oczywiscie wczesniej poczytaj co oznacza wybor tego silnika!)

j.
  Forum: Bazy danych · Podgląd postu: #978992 · Odpowiedzi: 11 · Wyświetleń: 670

alegorn
Napisane: 17.07.2012, 13:39:00





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

in_array()
  Forum: Przedszkole · Podgląd postu: #978282 · Odpowiedzi: 3 · Wyświetleń: 350

alegorn
Napisane: 11.07.2012, 10:03:25





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

chole*a duzo tego.. troche to przeredaguje.

Cytat
nieco bardziej restrykcyjna wersja trzeciej postaci normalnej jest nazywana postacią [ciach] BCNF
w trzeciej postaci normalnej wszystkie atrybuty spoza klucza muszą zależeć od klucza danej tabeli
w postaci normalnej BCNF tej regule podlegaja takze kolumny nalezace do klucza
ten dodatkowy warunek na znaczenie w sytuacji gdy tabela zawiera wiele zbiorow kolumn ktore moga pelnic funkcje prawidlowych kluczy tej tabeli


z powyzszego wiele ine wynika, wiec przyklad:

Cytat
mamy trzy typy tagow
* opisujace skutki bledow
* wskazujace podsystemy na ktore wplywaja poszczegolne bledy
* tagi opisujace sposoby rozwiazania problemow

decydujemy ze kazdy blad moze miec przypisany ci najwyzej jeden tag kazdego typu.
dobrym kandydatem na primary moze byc : id_bledu i tag ale takze id_bledu i typ_tagu


WIELE POTENCJALNYCH KLUCZY

id bledu| tag | typ_tagu
1234 | awaria| skutki
3456 | druk | podsystem
3456 | awaria| skutki
5678 | raport| podsystem
5678 | awaria| skutki
5678 | dane | rozwiazanie

ANOMALIA

id bledu| tag | typ_tagu
1234 | awaria| skutki
3456 | druk | podsystem
3456 | awaria| skutki
5678 | raport| podsystem << ANOMALIA
5678 | awaria| podsystem << ANOMALIA
5678 | dane | rozwiazanie

postac normalna BCNF

TagiBledow
id_bledu| tag
1234 | awaria
3456 | druk
3456 | awaria
5678 | raport
5678 | awaria
5678 | dane

Bledy
tag | typ_tagu
awaria | skutki
druk | podsystem
raport | podsystem
dane | rozwiazanie

tabele w relacji :
TagiBledow n:1 Bledy



piwo sie nalezy.wink.gif

j.
  Forum: MySQL · Podgląd postu: #976520 · Odpowiedzi: 7 · Wyświetleń: 3 001

alegorn
Napisane: 9.07.2012, 11:35:57





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

kwestia definicji klucza glownego.

dlaczego chcesz rezygnowac z zlozonego klucza ?
ja bym zakładał założyć klucz główny na kolumnach sektor/rząd/miejsce/rozdział

jeśli jużnie możesz z innych przyczyn, to czy długość klucza jest stała ? jeśli tak, to możesz w definicji pola załączyć opcję zerofill, wtedy nie stracisz zer z początku, a format będzie intem


tak naprawdę o ile widzę zadanie bardzo przypomina struktury drzewiaste, to co chcesz osiągnąć jest chyba bliskie drzewku IP (metoda ścieżki), doszukaj sie tego w necie, myślę że nie zaszkodzi wink.gif

j.
  Forum: Bazy danych · Podgląd postu: #975972 · Odpowiedzi: 2 · Wyświetleń: 534

alegorn
Napisane: 4.07.2012, 13:53:36





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

hm.
wyskakuje ci identyfikator olaczenia.

jak rozumiem przykladow mysql_querytez nie lubisz?
  Forum: Przedszkole · Podgląd postu: #974657 · Odpowiedzi: 5 · Wyświetleń: 366

alegorn
Napisane: 27.06.2012, 09:50:25





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

mmmmmmm :: robisz niepotrzebne zamieszanie. zapytanie nie jest iloczynem kartezjańskim, zlaczenia tabel sa w warunku where
j.
  Forum: MySQL · Podgląd postu: #972909 · Odpowiedzi: 5 · Wyświetleń: 485

alegorn
Napisane: 26.06.2012, 16:11:32





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

hm.
mimo wszystko sugerowalbym jakis kurs przerobic, to jest dosc podstawowa informacja.

tutaj konkretnie twoje a jest aliasem zdefiniowanym w sekcji FROM mdl_user a (definicja aliasu czesto jest poprzedzana slowem AS czyli mdl_user AS a)


j.
  Forum: MySQL · Podgląd postu: #972762 · Odpowiedzi: 5 · Wyświetleń: 485

alegorn
Napisane: 20.06.2012, 14:47:11





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

sprawa nie jest taka prosta.

jedna z ważniejszych maksym tutaj to będzie że: dane nie trzymane w bazie danych - nie są przez tą bazę zarządzane
jeśli nie są to wielkie pliki, oraz nie będzie ich wiele - lepiej będzie trzymać to bazie danych.

większość programistów będzie wskazywać rozwiązanie sugerujące umieszczanie plików poza bazą, ale nie jest to zawsze dobrym rozwiązaniem np:
* masz jakiś art.
* chcesz usunąć dany artykuł (zwłaszcza jeśli stosujesz miękkie usuwanie) masz dwie opcje:
- zostawiasz grafikę
- usuwasz grafikę

kwestia wyboru opcji - albo dziergasz kolejne linie skryptu i usuwasz zbędną (i widoczną z netu) grafikę, albo nie przejmujesz się tym że zaśmiecasz sobie serwer.(a serwery lubią porządek w katalogach. sic!)

- usuwasz (no, ale co jeśli będziesz chciał przywrócić dany art??)
- zostawiasz, ale jeśli nie zastosowałeś bardziej zaawansowanej obsługi plików - możesz rozwalić sobie system plików na serwerze

także, moim zdaniem, jeśli nie robisz np galerii - zapis plików do bazy danych, nie jest już tak bezsensowny.
jedynym problemem, ale do rozwiązania jest backup tych tabel, ale jeśli zrobisz to w osobnej tabeli i backup jej robisz przyrostowo.

j.
  Forum: Bazy danych · Podgląd postu: #971090 · Odpowiedzi: 4 · Wyświetleń: 437

alegorn
Napisane: 24.05.2012, 12:19:32





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

myisam na czas update blokuje ci cala tabele. kolejny update bedzie mozliwy po jego zakonczeniu
innodb - zablokuje ci tylko ten konkretny wiersz.

to tyle jesli chodzi o pierwsze podejscie.
co oczywiscie nie przeszkadza w tym, by jednym updatem nie nadpisano wczesniejszy - dlatego wydawalo mi sie ze pytasz sie o flagi

kiedy flaga bedzie zdjeta? a to juz jak sobie pan zyczy.
powinno byc to mozliwe jedynie przez admina, moderatora, ale jak to oprogramujesz - to tak bedzie.

j.
  Forum: MySQL · Podgląd postu: #965131 · Odpowiedzi: 3 · Wyświetleń: 465

alegorn
Napisane: 25.04.2012, 13:05:23





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

w mysql inaczej tego nie osiagniesz.

ale np w mongoDB - bez problemu.

j.
  Forum: MySQL · Podgląd postu: #958912 · Odpowiedzi: 3 · Wyświetleń: 407

alegorn
Napisane: 25.04.2012, 16:18:17





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

huh?
toż to jeden c**j...

left join i join w tym wypadku nie robi roznicy.

podajac zas

select *

zamiast mojego

select t2.*

powodujesz ze masz smieci w zwrocie., w pierwszej czesci masz zduplikowane rekordy o tabele t1 - i dopiero w czesci t2 jest rozne co do szczegolow.

no, ale co tam, jesli jestes zadowolony z tego jak ci to dziala - no to najwazniejsze.


Pilsener@:: union nie zadziala.

pozdrawiam,
J.
  Forum: MySQL · Podgląd postu: #958976 · Odpowiedzi: 8 · Wyświetleń: 465

alegorn
Napisane: 25.04.2012, 13:04:22





Grupa: Zarejestrowani
Postów: 341
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----

zrozumialem, ale ty nie zrozumiales ze zrozumialem wink.gif

sprawdzales to zapytanie?
wstaw zamiast slowo table (to sie sformatowalo niepotrzebnie) swoja nazwe tabeli

  1. SELECT t2.* FROM twoja_tabelat JOIN twoja_tabela t2 ON t1.typ = t2.typ WHERE t1.model = 'kart'



j.
  Forum: MySQL · Podgląd postu: #958911 · Odpowiedzi: 8 · Wyświetleń: 465

2 Stron V   1 2 >

New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 13:54