JPA jak napisać encje do takiej logiki bazodaniowej

0

Cześć, możecie mi pomóc napisać encje w Springu? Próbowałem wczoraj pół dnia ale nie chciało śmigać, każda wskazówka będzie mile widziana.
Baza w uproszczeniu wygląda tak:

User:
id - primary
username
password
itd

Quiz
id - primary
quiz_name
question
itd

Score
id - primary
username - foreign key z User
quiz_name - foreign key z Quiz
score

Tabele User i Quiz mam w Javie zmapowane i działają, ale chciałem dodać teraz tabele Score która bedzie przechowywac wyniki kazdego quizu dla kazdego uzytkownika wiec rekordy maja wygladac np tak:
1 user1 quiz1 0
2 user1 quiz2 1
3 user2 quiz1 9

0

Zrób dodatkową tabelę z dwoma relacjami @ManyToOne i z kolumnami które chcesz mieć.

https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/

0
Nadziany Polityk napisał(a):

Cześć, możecie mi pomóc napisać encje w Springu? Próbowałem wczoraj pół dnia ale nie chciało śmigać, każda wskazówka będzie mile widziana.
Baza w uproszczeniu wygląda tak:
Score
id - primary
username - foreign key z User
quiz_name - foreign key z Quiz
score

A po co Ci w takim razie id w User, i id w Quiz, bo z tego wynika, że username i quiz_name są kluczami głównymi. Chyba lepiej tak:
Score
id - primary
user_id - foreign key User
quiz_id - foreign key Quiz
score
Kolejne pytanie, co to jest Quiz? Jedno pytanie, czy zbiór pytań?
I kolejna sprawa, czy nie lepiej przypisać, każdemu pytaniu liczbę punktów, i stworzyć tabelę 'Aswer', w której przechowujesz kto, na jakie pytanie wybrał daną odpowiedź. Wtedy liczbę punktów usera obliczasz na podstawie tej relacji w złaczeniu z tabelą Quiz. Zmniejszy to liczbę powielanych danych, gdy 1k użytkowników dostanie po 10 pkt. z to samo pyanie. Score to ma sens do przechowywania łącznego wyniku z wszystkich quizów dla każdego użytkownika np. do tworzenia rankingu użytkowników, żeby nie zarżnąć bazy milionem zapytań, gdy jeden użytkownik dostanie kolejny punkt.

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