+ SQL | Dziennik - oceny

PHP  Założony przez  Michał Wajrak.

Cześć. 
W jaki sposób mógłbym zrobić jakiś prowizoryczny dziennik?
Jeżeli przykładowo mam z 5 ocen, to muszę stworzyć 5 kolumn?


Pytanie może być głupie, ale dopiero zaczynam xD

@edit
Jeżeli mam oceny 5 | 2 | 1 | 5 | 1 | 1 | 6 |
To muszę robić aż 7 kolumn czy da się to wsadzić w 1 kolumnę?
I czy wyciągnięcie danych z tej kolumny będzie się różniło od zwyczajnego sposobu?
Nie mylisz pojęcia kolumna z wierszem / rekordem?

Załóżmy, że masz dwie tabele - uczniowie i wyniki

Tabela uczniowie zawiera dane ucznia - imię, nazwisko, rozmiar lewego oczodołu etc.
Tabela wyniki np - id ucznia, ocena (dwie kolumny)
skoro ten sam uczeń ma 7 ocen, to 7 różnych rekordów.

Jeśli chcesz się uprzeć przy 1 uczeń - 1 rekord w bazie, to możesz wypisywać oceny po przecinku i potem np. w php to rozdzielać w tablice, ale w bazach danych dąży się atomowości danych, więc takie rozwiązanie na dłuższą metę było by mało praktyczne.
"Try not. Do... or do not. There is no try."
Poświęć 5 minut. Nie bądź ignorantem!  -  Jak zbadać element?
Tak to wygląda w PHPMyAdmin, dobrze?
[Obrazek: KGOXhg4.png]

Jeszcze pytanie, jak będzie wyglądał kod PHP, który będzie pokazywał od oceny1 do oceny10?
Zależy jaką funkcję ma spełniać taki dziennik. Jeśli założysz, że te oceny to są oceny za konkretne rzeczy - coś na zasadzie WF, rzut młotem, skok w dal, bieg etc. to od biedy tak mogłoby być, ale gdy są to normalne oceny ucznia w ciągu semestru to taki układ jest bez sensu.

Już lepiej zrobić osobną tabelę na oceny:
id, id ucznia, ocena

W tym momencie możesz przypisać nieograniczoną liczbę ocen każdemu uczniowi i ew. rozwijać dalej o przedmioty etc.
Poza tym - kolumny z dniami i obecnościami są w tej postaci też bez sensu - na pierwszy rzut oka lepiej byłoby to porozdzielać.
Kolumna wszystkie_obecności - po co to przechowywać w bazie skoro można to wyliczać na podstawie jednej danej - liczba możliwych obecności w ciągu roku szkolnego jest stała, więc to możesz w skrypcie zapisać, do tego w bazie mogłaby powstać tabela Nieobecności: id, id ucznia, data. Teraz pozostaje zliczyć ile nieobecności jest przypisanych dla danego usera i odjąć to od liczby maksymalnej = liczba dni obecnych, nieobecnych pozyskana.

Usprawiedliwienia można dopisać jako dodatkowa kolumna do nieobecności i logikę zbudować już w skrypcie (liczenie wszystkich nieobecności, liczenie nieobecności usprawiedliwionych) i tyle.

Jak już robisz bazę to myśl sobie za każdym razem czy w takiej postaci możesz w razie czego rozwijać dalej - nawet jeśli nie zamierzasz tego robić - obecnie z Twoją tabelą zbiorczą masz ograniczone możliwości a i utrudnione dodawanie danych nt. obecności :)
"Try not. Do... or do not. There is no try."
Poświęć 5 minut. Nie bądź ignorantem!  -  Jak zbadać element?



Użytkownicy przeglądający ten wątek:

1 gości