Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]duża baza - jak zrobić zapytania
enigma
post 18.02.2007, 13:33:30
Post #1





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


Witam
zastanawiam się jak zrobić zapytania do tak dużej bazy tongue.gif (6 tabel) screen z projektu:
http://img401.imageshack.us/img401/8718/bazaar1.jpg
powykreślałem parę rzeczy żeby nie motać tongue.gif
chodzi mi o takie coś, traktuję tabele Nieobecnosci jak taki rdzeń, i załóżmy że chcę wyciągnąć wszystkie dane z innych tabel dla uczniów nieobecnych jakiegoś dnia. I nie wiem jak się do tego zabrać
czy tabele Nauczyciel, Klasa, Uczen dać jako jeden podselekt, tabele Nauczyciel, Zajecia, Przedmiot jako kolejny podselekt i wtedy złączyć to jakoś z Nieobecnosci worriedsmiley.gif
Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
dr_bonzo
post 18.02.2007, 14:22:41
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Duza to ona jeszcze nie jest smile.gif ale to OT

Czemu Uczen i Klasa sa 1:1 ? Powinno byc N:1, uczen w jednej klasie, klasa ma wielu uczni[ow??].
Pousuwales niektore FK (brak idNauczyciela w Klasie)

Chcesz pobrac dane dla wszystkich nieobecnosci? To laczysz kolejno tabele JOINami - wzdluz linii.

Podaj konkretny przyklad, co chcesz wyciagnac.


Przenosze na Bazy danych


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
enigma
post 18.02.2007, 14:57:21
Post #3





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


Cytat(dr_bonzo @ 18.02.2007, 14:22:41 ) *
Uczen i Klasa sa 1:1 ? Powinno byc N:1, uczen w jednej klasie, klasa ma wielu uczni[ow??].Pousuwales niektore FK (brak idNauczyciela w Klasie)
poprawiłem relacje, no i zamieszczam nowy screen, teraz nic nie zamazałem tongue.gif
http://img68.imageshack.us/img68/3681/baza2ss6.jpg

kurcze dziwny ten DBDesigner winksmiley.jpg po co do tabeli nieobecności wrzuca wszystkie klucze z powiązanych tabel

klasa - nauczyciel <- w tej relacji nauczyciel jest wychowawcą
przedmiot - zajęcia - nauczyciel -< tutaj chodzi o prowadzenie zajęć

Cytat(dr_bonzo @ 18.02.2007, 14:22:41 ) *
Podaj konkretny przyklad, co chcesz wyciagnac.
hmm, np uczniów którzy byli nieobecni dnia 15 stycznia 2007 na zajęciach z matematyki. Wynikowa tabela ma zawierać imię i nazwisko każdego ucznia, klasę do której chodzi oraz wychowawcę tejże klasy


Cytat(dr_bonzo @ 18.02.2007, 14:22:41 ) *
Przenosze na Bazy danych
sorry za pomyłkę tongue.gif

Ten post edytował enigma 18.02.2007, 15:07:08
Go to the top of the page
+Quote Post
dr_bonzo
post 18.02.2007, 16:31:12
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
sorry za pomyłkę

Nie tyle co pomylke, co przedszkole ma troche inny poziom smile.gif

Nie sprawdzane (bo jak? smile.gif)
  1. -- nazwy zmienione tak zeby mi sie latwiej pisalo, domyslisz sie o co chodzi
  2. /*
  3. skad wziasc - ucznia: Nieobecnosc - Uczen
  4. - klase: Nieobecnosc - Uczen - Klasa
  5. - wychowawce: Nieobecnosc - Uczen - Klasa - Nauczyciel
  6.  
  7.  
  8. - jak polaczyc z przedmiotem
  9.   Nieobecnosc - Zajecia - Przedmiot = Matematyka
  10. */
  11.  
  12. SELECT
  13. uczniowie.imie,
  14. uczniowie.nazwisko,
  15. klasy.nazwa,
  16. wychowawcy.imie, -- wychowawca
  17. wychowawcy.nazwisko -- wychowawca
  18. FROM nieobecnosci JOIN uczniowie ON uczniowie.id = nieobecnosci.uczen_id, -- uczen
  19. JOIN klasy ON klasy.id = uczniowie.klasa_id, -- jego klasa
  20. JOIN nauczyciele AS wychowawcy ON wychowawcy.id = klasa.nauczyciel_id, -- wychowawca klasy
  21. -- podlaczyc zajecia! / przedmimot
  22. JOIN zajecia ON zajecia.id = nieobecnosc.zajecie_id,
  23. JOIN przedmioty ON przedmioty.id = zajecia.przedmiot_id
  24. WHERE nieobecnosci.DATA = '15 stycznia 2007' AND przedmiot.nazwa = 'matematyka';
  25.  
  26.  
  27. -- tylko trzeba jeszcze chyba wybrac kazdego ucznia po razie
  28. -- bo jak go jednego dnia nie bylo na obu zajeciach to wystapi
  29. -- dwukrotnie, no chyba ze o to ci chodzilo


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
enigma
post 19.02.2007, 09:22:34
Post #5





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


ok smile.gif rozumiem tylko jedno mnie zastanawia, no bo tutaj w projekcie bazy w tabeli Nieobecności jest większość kluczy obcych, to mi się takie dziwne wydaje, bo bo wszystko sprowadza się do jednej tabeli (chyba niezbyt wyraźnie określam mój problem tongue.gif) chodzi mi o to że jak np w Accesie tworzyłem tabele i relacje, to tam klucze nie były przekazywane jak w dbdesigner, łączyłem tylko odpowiadające pola

a głównie chodzi o to ze jak dodaję dane do tabeli uczniowie to muszę dodać id_klasy i id_nauczyciela. a po co, powinno być samo id_klasy, id_nauczyciela już jest w tabeli klasa, więc po co mam je wpisywać w tabeli uczniowie. Bez sensu

Ten post edytował enigma 19.02.2007, 10:01:45
Go to the top of the page
+Quote Post
dr_bonzo
post 19.02.2007, 12:46:23
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No wlasnie troche za duzo tych FK sie porobilo (wystarcza tylko te do polaczonych 'kreskami' tabel), to reszta jest nadmiarowa.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
enigma
post 19.02.2007, 13:30:20
Post #7





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


hhm, głupi program aaevil.gif nie ma czegoś lepszego, no bo ten dbdesigner jest w tym wypadku mało użyteczny
Go to the top of the page
+Quote Post
Vogel
post 19.02.2007, 13:50:40
Post #8





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

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


moze DBWrench?


--------------------
Go to the top of the page
+Quote Post
enigma
post 19.02.2007, 14:55:25
Post #9





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


hmm, interesują mnie tylko free tongue.gif chyba będę używał tego dbdesigner ale nie będę rysował relacji i będzie bez zbędnych kluczy

a może jednak DBDesigner nie jest taki głupi tongue.gif tongue.gif tongue.gif bo tam są jakieś 2 typy relacji tongue.gif i dałem te drugi i ni ma tylu kluczy winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:59