Java i MySQL -jak to powinno wyglądać?

0

Hej. Zamarzyło mi się napisać w Javie prosty wirtualny dzienniczek(a w gimbazie tego nienawidziłam :P). Mam tylko dwa pytania;
Jak w MySQL przechowywać informację o ocenie z danego przedimotu wystawionej studentowi powiedzmy przez jakiegoś nauczyciela. Powinnam stworzyć osobną tabelę z polami np. |idStudent|idSubject|idMark||idTeacher| ?

Poza tym czy dla każdej klasy też powinnam stworzyć osobną tabelę po prostu z odpowiednimi polami?
(przedstawię je w takim pseudokodzie z samymi polami klas):

/* grupa uczniów */
public class Group {
	int id;
	String name;
	String info;
}
/* przedmiot */
public class Subject {
	private String name;
	int id;
}

/* potem stworzę poklasy typu Student, Teacher, Pedagogue ... */
public abstract class Person {
	int id;
	private String name;
	private String surname;
	private String email;
}
/* ocena */
public class Mark {
	private int id;
	private int mark;
	private int importance;
	private String info;
}

Dodam, że potem planuję na przykładzie tej aplikacji uczyć się Spring MVC, Hibernate, dlatego wogólę pytam , chciałam żeby to było zgodne z jakoś działało i wyglądało....żebym nie miała problemów z wdrożeniem. Pozdrawiam

1

Nie wydziedziczałbym studentów i nauczycieli z tej samej klasy Person, bo to zupełnie różne klasy. To trochę tak jakby pakować klientów i pracowników do tego samego worka.

1
karolinaa napisał(a):

Powinnam stworzyć osobną tabelę z polami np. |idStudent|idSubject|idMark||idTeacher| ?

W javie się w ogóle nie powinno jawnie nigdzie przechowywać id do innych obiektów niż własny.
Także tabelę owszem, ale klasa nie powinna mieć pól idStudent_id itp. Możesz je sobie wyciągnąć z przechowywanych obiektów: getStudent().getId()

Jeśli chcesz klasę pośrednią to np:

Mark {
      MarkType markType ///zakładam że tu będzie info, czy to będzie 2,3,4,5 czy 6
      Student student;
      Teacher techer;
      Subject subject;
}

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