[C++][PHP][mySQL] Program przeprowadzający egzaminy

0

Mam do zrobienia prace dyplomowa:
Program napisany w C++, baza danych w mySQL, do tego interfejs bazy danych w PHP.
Program ma zadanie:

  1. Uczen podaje imie, nazwisko, klasa
  2. Kolejno sa wyswietlane pytania (+zdjecia) na ktore uczen ma odpowiedziec
  3. Nastepnie to wszystko jest zapisywane do bazy (imie, nazwisko, klasa, jaki egzamin, ilosc poprawnych odpowiedzi oraz negatywnych)
  4. Uniemozliwosc przerwanie testu, czy ponowne rozpoczecie
    Interfejs ma zadanie:
    Umozliwic dodawanie danych/wpisów do bazy danych, ich edytycje oraz usuwanie.

I mam pytanie jak ma wygladac struktura bazy danych.

Uczen
Uczenid, Imie, Nazwisko, Klasa

Ocena
Uczenid, Imie, Nazwisko, Klasa, Egzamin, Ocena

Egzamin
Egzamin, NazwaEgzaminu, BazaDanych, Data, Klasa, IloscOsob

Pytania
pytanieid, TrescPytania, Zdjecie

Odpowiedz
odpowiedzid, IloscOdpowiedzi, PrawidlowaOdpowiedz, TrescOdpowiedzi1 ... TrescOdpowiedzin

Taka jest prawidlowa? Czy cos musze zmienic?

0
Magus napisał(a)

Mam do zrobienia prace dyplomowa:
Program napisany w C++, baza danych w mySQL, do tego interfejs bazy danych w PHP.
Program ma zadanie:

  1. Uczen podaje imie, nazwisko, klasa
  2. Kolejno sa wyswietlane pytania (+zdjecia) na ktore uczen ma odpowiedziec
  3. Nastepnie to wszystko jest zapisywane do bazy (imie, nazwisko, klasa, jaki egzamin, ilosc poprawnych odpowiedzi oraz negatywnych)
  4. Uniemozliwosc przerwanie testu, czy ponowne rozpoczecie
    Interfejs ma zadanie:
    Umozliwic dodawanie danych/wpisów do bazy danych, ich edytycje oraz usuwanie.

I mam pytanie jak ma wygladac struktura bazy danych.

Uczen
Uczenid, Imie, Nazwisko, Klasa

Ocena
Uczenid, Imie, Nazwisko, Klasa, Egzamin, Ocena

Egzamin
Egzamin, NazwaEgzaminu, BazaDanych, Data, Klasa, IloscOsob

Pytania
pytanieid, TrescPytania, Zdjecie

Odpowiedz
odpowiedzid, IloscOdpowiedzi, PrawidlowaOdpowiedz, TrescOdpowiedzi1 ... TrescOdpowiedzin

Taka jest prawidlowa? Czy cos musze zmienic?

  • W ocenach niepotrzebnie jeszcze raz Imie, Nazwisko, Klasa.
  • Co oznacza BazaDanych w egzaminach, po raz trzeci klasa
  • po co w odpowiedziach ilosc odpowiedzi (mozna wyliczyc po id pytania)
  • do tego w odpowiedziach jeszcze pytanie id
  • jedna odpowiedz to jeden wpis, jak bedziesz chcial zmienic ilosc odpowiedzi to bedziesz dodawal kolejna kolumne?
  • w egzaminach nieistotna ilosc osob
  • dodaj date egzaminu, bedzie mozna sprawdzic, czy w dobrym dniu zdaje

Na razie tyle, popraw i pomyslimy dalej :)

pozdrawiam
johny

0

Uczen
Uczenid, Imie, Nazwisko, Klasa, Egzamin, Ocena
(a pozniej wystarczy uzywac WHERE Imie="Jozef" Nazwisko="Stanisław" Klasa="2T1"
dla danej osoby albo WHERE Egzamin="Inf01" dla danego egzaminu; czy jednak osobno?)

Egzamin
Egzamin, NazwaEgzaminu, Data, Klasa
(rzeczywiscie nie potrzeba Egzaminid gdyz nie mozliwe jest zeby tego samego dnia ta sama klasa pisala ten sam test, jednak powinna byc informacja o tym ile bylo uczniow, klasa dlatego ze informuje nas o tym jaka klasa miala test)

Pytania
pytanieid, TrescPytania, NazwaEgzaminu, Zdjecie
(i uzywac WHERE NazwaEgzaminu="inf01")

Odpowiedz
odpowiedzid, PrawidlowaOdpowiedz, TrescOdpowiedzi

0
Magus napisał(a)

Uczen
Uczenid, Imie, Nazwisko, Klasa, Egzamin, Ocena
(a pozniej wystarczy uzywac WHERE Imie="Jozef" Nazwisko="Stanisław" Klasa="2T1"
dla danej osoby albo WHERE Egzamin="Inf01" dla danego egzaminu; czy jednak osobno?)

Egzamin
Egzamin, NazwaEgzaminu, Data, Klasa
(rzeczywiscie nie potrzeba Egzaminid gdyz nie mozliwe jest zeby tego samego dnia ta sama klasa pisala ten sam test, jednak powinna byc informacja o tym ile bylo uczniow, klasa dlatego ze informuje nas o tym jaka klasa miala test)

Pytania
pytanieid, TrescPytania, NazwaEgzaminu, Zdjecie
(i uzywac WHERE NazwaEgzaminu="inf01")

Odpowiedz
odpowiedzid, PrawidlowaOdpowiedz, TrescOdpowiedzi

Proponuje tak:
Uczen
Uczenid, Imie, Nazwisko, Klasa,

  • przechowuje tylko daje o uczniu, zeby byly raz w jednym miejscu, zakladajac, ze uczen chodzi tylko od jednej klasy na raz

Egzamin
EgzaminId, NazwaEgzaminu, Data, MiejsceEgzaminu

  • informacje o egzaminie i nic wiecej

UczenEgzamin
UczenId, EgzaminId
osobna tabela, bo uczen moze zdawac wiecej niz jeden egzamin oczywiscie.

Pytania
pytanieid, EgzaminId, TrescPytania, Zdjecie

Odpowiedz
odpowiedzid, PytanieId, PrawidlowaOdpowiedz(typu bit), TrescOdpowiedzi

Proponuje poslugiwac sie w miare mozliwosci where xxxId='xxx', bo Id zazwyczaj jest kluczem i jest indeksowany, wiec jest szybciej.

pozdrawiam
johny

1 użytkowników online, w tym zalogowanych: 0, gości: 1