Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] rozwiązanie bazy danych
sebamasta
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.10.2007

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


mam taki problem
mam do zrobienia skrypt obsługujący coś podobnego do dzienniczka ucznia, problem polega na tym że przedmioty każdego ucznia są różne, jak zaprojektować taką baze danych mój pierwszy pomysł to taki aby admin mógł z poziomu php dodawać tabelę z każdym przedmiotem lub ją usuwać, ponieważ przedmioty mogą pojawiać się nowe lub stare znikać. tylko pojawia się problem bo tych tabel stworze niewiadomo ile, skrypt bedzie dzialal na kilka osob wiec nie bedzie problemu z dzialaniem ale bedzie bardzo zaśmiecony.

Drugi pomysł to taki tylko nie sprawdzałem czy to realne aby utworzyć osobną tabeli z nazwami przedmiotów i w zapytaniu mysql zrobić odwołania do danej oceny w dzienniku

potem ma się to wyświetlać mniej więcej tak:

|nazwa przedmiotu|średnia| 11.11.09 | 12.11.09 | itd kolejne daty zajec
|polski |srednia| 5 | 4 | itd kolejne
|kolejny przedmiot i oceny......

Może znacie jakieś inne sposoby bo mi brakuje pomysłów tylko proszę o wyrozumiałośc jeżeli to zbyt banalny problem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Foxx
post
Post #2





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Pierwszy pomysł - arghh... Drugi lepszy ale tylko w połowie. Może po prostu zrób tak:

przedmioty
id | nazwa | opis | ...

uczniowie
id | imie | nazwisko | ...

oceny
id | id_ucznia | id_przedmiotu | ocena | data
Go to the top of the page
+Quote Post
sebamasta
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.10.2007

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


no o czyms podobnym myślałem, trochę mi to jeszcze rozjaśniłeś ale jeszcze jedno, dodawanie danych ma polegać na tym że ma się wyświetlać lista z przedmiotami ucznia a w tym wypadku to chyba nie możliwe, ew wyświetlałyby sie wszystkie przedmioty lub lista wyboru a takie rozwiązanie raczej mi nie odpowiada.
Go to the top of the page
+Quote Post
Foxx
post
Post #4





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


No to dodaj jeszcze jedną tabelę, powiedzmy:

przedmioty_ucznia
id | id_ucznia | id_przedmiotu
Go to the top of the page
+Quote Post
kefirek
post
Post #5





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


uczniowie
id | imie | nazwisko | przedmity_id |

I daj w przedmioty_id tak 1,4,5 id przedmitoów oddzielaj przecinkiem

Albo tak jak powiedział kolega Foxx ale wtedy tabela bedzie miała dużo rekordów

np

id | id_ucznia | id_przedmiotu
1 | 1 | 2
2| 1 | 5
3 | 2 | 7
4| 2 | 5

Czyli id ucznia bedzie sie potwarzać tyle razy ile ma przedmitów ale raczej troche to nie wydajne

Ten post edytował kefirek 2.03.2009, 21:01:44
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~kefirek, a relacyjność baz danych...? :|
Go to the top of the page
+Quote Post
sebamasta
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.10.2007

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


to mam teraz jeszcze jedno pytanie, już chyba za dużo główkuje, jak w takim przypadku policzyć średnią w php dla danego ucznia z danego przedmiotu?

pobrać z mysql dane dla danego ucznia i przedmiotu i tak robić za każdym razem tzn dla każdego przedmiotu każdego ucznia?
Go to the top of the page
+Quote Post
megawebmaster
post
Post #8





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Właśnie będzie o wiele wydajniejsze od kolejnej obsługi i wysyłania zapytania w PHP (explode i zrobienie zapytania o przedmioty). Poza tym robiąc takie pola w INT'ach o stałej przecież długości to ta tabela będzie najszybsza w całym systemie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

EDIT: @up - tak, musisz pobierać oceny wg. id_przedmiotu i tak dla każdego przedmiotu.

Ten post edytował megawebmaster 2.03.2009, 21:33:25
Go to the top of the page
+Quote Post
PanGuzol
post
Post #9





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


Przy budowie bazy danych zaproponowanej przez Foxxa
  1. SELECT avg(ocena) AS srednia FROM oceny WHERE ID_przedmiotu=$id_przedmiotu AND id_ucznia=$id_ucznia;
Go to the top of the page
+Quote Post
sebamasta
post
Post #10





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.10.2007

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


dzięki wielkie na razie nie mam pytań jeżeli się pojawia będę prosił dalej o pomoc
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 20:47