Diagram ERD

0

Cześć,
Dopiero zaczynam z bazami danych i chciałem sprawdzić czy dobrze robię:
Dostałem takie zadanie:

Zaprojektuj bazę danych dla biblioteki. W bibliotece jest dużo książek. Bibliotekarze wypożyczają książki czytelnikom.
Każdy czytelnik może jednorazowo wypożyczyć kilka książek, ale nie więcej niż 6. Książki są wypożyczane na określony
okres czasu. Za każdy dzień przetrzymania książki jest naliczana opłata karna. Po przyjściu do biblioteki czytelnik może
przedłużyć okres wypożyczenia książki, o ile nie rozpoczęto naliczania opłaty karnej. Książki w bibliotece są
skatalogowane i można je wyszukiwać po autorze, tytule i haśle przedmiotowym do którego są przypisane. Jedna książka
może być przypisana do wielu haseł przedmiotowych.
Narysuj znormalizowany (1NF, 2NF, 3NF) diagram ERD

To, że czytelnik może wypożyczyć kilka książek na raz, to myślę że musi być związek wiele do wielu miedzy czytelnikiem a wypożyczeniem, ale czy na diagram da się zaznaczyć, żeby było to max. 6 książek. Z drugiej strony nie wiem jak rozwiązać problem z opłatami karnymi? Nowa relacja kary, która ma związek z wypożyczeniami? Tak samo nie wiem jak dodać przedłużenie.
W załączniku przesyłam diagram.

0

Poprawiłem co nieco, jak myślicie teraz jest dobrze?
Pytanie, w relacji zwrot, data_zwrotu mogłaby być kluczem głównym?

2

Nie widzę potrzeby łączenia czytelnika z wypożyczeniem związkiem wiele do wielu. Ale tabele autor i książka połączył bym związkiem wiele do wielu. Dodał bym kolumnę w tabeli czytelnik, informującą o liczbie wypożyczonych książek i dał bym jej ograniczenie (CHECK tego raczej nie ma jak zaznaczyć na diagramie). do tabeli zwrot dodał bym wielkość kary. Nie zajmuje się jednak tworzeniem baz danych więc, nie patrz na te porady ze stu procentową pewnością.

0

Niepotrzebna jest tabela czytelnik_has_wypozyczenie (IDCzytelnika i IDKsiazki). Przenieś te dane do tabeli wypozyczenie. W wypożyczalni książek zwykle egzemplarze opisuje się numerem inwentarzowym. Jeden opis książki może mieć kilka numerów inwentarzowych (kupiono kilka egzemplarzy tego samego tytułu). Ze względów praktycznych nie ma co tworzyć takiej szczątkowej tabeli autorów bo ktoś musi ją ciągle aktualizować, chyba żebyś się zdecydował ją rozbudować bo autorzy często piszę pod pseudonimami patrz np. Waldemar Łysiak = Valdemar Baldhead. W poważnych systemach bibliotecznych stosuje się format MARC, ale to już zupełnie inna bajka

0

Jak usunę to wiele do wielu, to będzie wtedy pokryte, to że czytelnik może wypożyczyć kilka książek na raz?

0

" Jak mogę wypożyczyć egzemplarz, który już jest wypożyczony" w tabeli wypożyczenia pola ID_Egzemplarza + pole status(wypożyczenie/zwrot) powinny tworzyć indeks unikalny, dzięki temu fizycznie będziesz zabezpieczony przed sytuacją, że ten ten sam egzemplarz zostanie przypisany równocześnie dla wielu czytelników.

0

wypożyczenia pola ID_Egzemplarza + pole status(wypożyczenie/zwrot) powinny tworzyć indeks unikalny - źle napisałem bo będzie problem przy zwrotach (wiele zwrotów tej samej książki). Może zwroty przenieść do oddzielnej tabeli wtedy wystarczy unikalny indeks na polu ID_Egzemplarza

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