Model logiczny bazy danych - biblioteka

0

Witam, potrzebuje wykonac projekt bazy danych dowolnego elementu rzeczywistosci. Wybralem model biblioteki.W zalozeniach projektowych musialobyc co najmniej 10 tabel. Utworzylem nastepujace relacje i tabele:
screenshot-20191230131127.png
Czy ten model logiczny sie sprawdzi? Czy relacje zostaly dobrze zdefiniowane? Prosze o wskazanie ewentualnych bledow i porady, poniewaz chcialbym isc dalej z projektem ale nie jestem pewny tego modelu ( glownie chodzi o relacje ).

0

Eeee.... co to za tabelka dane_logowania? Czym to jest połączone z innymi tabelkami?

Zrób sobie nadrzędną tabelkę user, która będzie posiadać wspólne dane dla wszystkich rodzajów użytkowników. A tabelki czytelnik, pracownik i admin będą z niej korzystać.

0

To tabela zawierajace dane do logowania online przez strone. Polaczona relacja 1:1 z tabelami PRACOWNIK oraz CZYTELNIK.

0
sc4mp napisał(a):

To tabela zawierajace dane do logowania online przez strone. Polaczona relacja 1:1 z tabelami PRACOWNIK oraz CZYTELNIK.

Ale czym połączona? Do czego odnosi się kolumna login? Jak dla mnie bez sensu. Ja bym to wrzucił do tabelki user.

0
serek napisał(a):

Eeee.... co to za tabelka dane_logowania? Czym to jest połączone z innymi tabelkami?

Zrób sobie nadrzędną tabelkę user, która będzie posiadać wspólne dane dla wszystkich rodzajów użytkowników. A tabelki czytelnik, pracownik i admin będą z niej korzystać.

I do kazdej z tych tabelek dodac ID_user ?

1
sc4mp napisał(a):

I do kazdej z tych tabelek dodac ID_user ?

No raczej^^

Możesz też pozbyć się tabelki administrator, bo póki co nic ciekawego w niej nie ma. A zamiast tego w tabelce user możesz dodać kolumnę role, w której będziesz zaznaczał, czy user jest administratorem, klientem, czy pracownikiem.

W przypadku książki zrezygnowałbym z pola czy_dostępna, a dodał liczbę wszystkich egzemplarzy (wliczając wypożyczone). Wtedy wiesz dodatkowo ile jest maksymalnie książek, a ile zostało (gdy odejmiesz liczbę wypożyczonych).

0

Model wyglada aktualnie tak: screenshot-20191230155114.png
Dodalem tabele uzytkownik zamiast dane_logowania i przerzucilem tam dodatkowo pola takie jak telefon czy e-mail. Dostawca zostal rowniez podpiety pod tabele uzytkownik. Administrator zostal usuniety a do uzytkownika dodalem role. Czy ktos chcialby sie jeszcze podzielic uwagami? ;)

0

Czy relacje pomiedzy CZYTELNIK FILIA PRACOWNIK DOSTAWCA a ADRES oraz CZYTELNIK PRACOWNIK DOSTAWCA a UZYTKOWNIK powinna byc relacja 1:1 czy moze M:N?

0

Jeśli chodzi o userów, to 1:1. W przypadku reszty, to nie wiem, ale dałbym też 1:1.

Masz teraz duplikację pól w userze, pracowniku i czytelniku.

0

O jakich duplikacjach pol mowisz? Chodzi o LOGIN ? Pelni on role klucza obcego w pozostalych tabelach zamiast ID_USER, poniewaz i tak musi byc unikatowy dla kazdego uzytkownika.

0

Ilość i termin_dostawy nie powinien być u dostawcy.
Trzymanie informacji o samochodzie dostawcy to chyba za dużo jak na DB biblioteki.
Zamiast dostawcy to zamówienie może się łączyć z filią.
Z zamówienia można oddzielić pozycje na zamówieniu (nie mam pomysłu jak to nazwać).

0
Delor napisał(a):

Ilość i termin_dostawy nie powinien być u dostawcy.
Trzymanie informacji o samochodzie dostawcy to chyba za dużo jak na DB biblioteki.
Zamiast dostawcy to zamówienie może się łączyć z filią.
Z zamówienia można oddzielić pozycje na zamówieniu (nie mam pomysłu jak to nazwać).

FILIA do ZAMOWIENIE ale DOSTAWCA nadal do ZAMOWIENIE, zgadza sie ?

1

Tak.
Termin dostawy do zamówienia a ilość i id książki do nowej tabelki (połączonej z zamówieniem).

0
Delor napisał(a):

Tak.
Termin dostawy do zamówienia a ilość i id książki do nowej tabelki (połączonej z zamówieniem).

I wtedy polaczyc KSIAZKA z ta tabela, ktora jest polaczana z zamowieniem, powiedzmy: POZYCJA_ZAMOWIENIA ?
Miedzy ZAMOWIENIE a POZYCJA_ZAMOWIENIA relacja 1:N ?

0

Mysle ze juz ostatnie pytanie: relacja miedzy KSIAZKA a POZYCJA_ZAMOWIENIA rowniez bedzie 1:N ?

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