System biblioteczny - schemat bazy danych do oceny

0

Stworzyłem schemat bazy danych dla system bibliotecznego. Poprosiłbym o ocenę tego schematu.

Dodatkowo w oparciu o ten schemat chciałbym stworzyć aplikację webową w Javie z wykorzystaniem Spring, Hibernate, MySQL. W związku z tym mam kilka kwestii, których nie do końca wiem jak rozwiązać:

  1. Egzemplarz książki ma atrybut status. Do wyboru jest: wypożyczony, zarezerwowany, dostępny. Jak to zrealizować w bazie danych, aby tylko jedna z tych trzech opcji była dostępna. Chciałem użyć typu Enum, ale chyba nie ma czegoś takiego w MySQL
  2. Chcę aby użytkownik miał możliwość, nie tylko wypożyczenia, ale również rezerwacji książki z domu. Rezerwacja ma ważność 2 dni, a po tym czasie powinna zniknąć z bazy danych. Jak to zrealizować? Myślałem o tym, żeby dane w tabeli "Reservation" były tymczasowe, ale czy jest taka możliwość w MySQL?
  3. Z innej bajki - czy każda książka musi mieć wydawnictwo? Np. książki wydawane samodzielnie przez autora mają wydawnictwo? Zastanawiam się czy relacja pomiędzy Book i Publisher powinna być typu identifying czy non-indentyfying.
  4. Chciałbym aby każdy czytelnik miał limit wypożyczeń, którego nie może przekroczyć. Czy lepiej wykonać to na poziomie bazy danych dodając atrybut np. "liczba aktualnych wypożyczeń", czy lepiej sprawdzać to na poziomie aplikacji?
  5. Podobnie, chciałbym aby była naliczana kara za opóźnienia. Jak to zrealizować? Czy powinienem stworzyć atrybut, który będzie przechowywał i uaktualniał aktualnie naliczoną karę?
    obraz
1
  1. Jeśli użyjesz enum w javie to hibernate sam to ogarnie
  2. Logikę trzymaj w aplikacji tj. rób rezerwację i np. gdzies potem co jakiś czas sprawdzaj czy są jeszcze ważne i usuwaj/zmieniaj jako nieważne
  3. Jak sobie uznasz
  4. Logikę trzymaj w aplikacji
  5. jw
0

w adresie powinny być chary a nie int bo może być np . Wesoła 7/9 m 45A
tak samo PESEL nie powinien być int
nazwa tabeli Loan sugeruje że chodzi o pożyczanie forsy a nie książek
czy mi się wydaje czy brakuje historii wypożyczeń?

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