Skocz do zawartości

poprawność relacyjnego modelu bazy danych wypożyczalni


enter222

Rekomendowane odpowiedzi

Witam,

Piszę w celach edukacyjnych stronę dla wypożyczalni sprzętu sportowego.

Chciałbym Was prosić i zerknięcie do mojego projektu bazy danych bo obawiam się że mogą być błedy.

Projekt bazy: https://img560.imageshack.us/img560/1381/wypozyczalnia5.png

Mam pewne wątpliwości co do poprawnego działania rezerwacji, zrobiłem ją w taki sposób ale nie jestem pewny czy tak będzie poprawnie bo jeśli zarezerwuje np. narty to ma się ilość dostępnych sztuk zmniejszyć czy dodać pole status ale wtedy każdy sprzęt musiał by być w osobnych rekordach a tak będzie chyba źle bo ważne aby dane się nie powtarzały.

wypozyczalnia5.png

Odnośnik do komentarza
Udostępnij na innych stronach

Co do samej rezerwacji to nie musisz tego zmniejszać bezpośrednio w bazie. Jeżeli obrabiasz dane w PHP to wszystko zależy od tego jak wygląda Twój kod. Podczas wyświetlania dostępnego sprzętu, sprawdź ile jest sztuk danego sprzętu i ile sztuk jest obecnie na wypożyczeniu. Różnica tych dwóch liczb będzie stanowić dostępną liczbę danego sprzętu.

Odnośnik do komentarza
Udostępnij na innych stronach

moje zdanie:

  • w tabeli pozycje faktury (FK) powinien być raczej do tabeli pozycje wypożyczenia (zmniejsza się ilość danych w pierwszej tabeli)
  • klient i pracownik to osoby, więc tutaj też bym się zastanowił nad zmianą projektu, druga sprawa dane osobowe możnabyłoby zapisywać w jeszcze innej tabeli z rozróżnieniem typu (wtedy można osiągnąć większą skalowalność bazy) ;)

pozatym ja bym to jeszcze inaczej rozwiązł ;)

Studio Stawki - najfajniejsze studio fotograficzne z cykolramą w Warszawie - ul. Inflancka 11.

Odnośnik do komentarza
Udostępnij na innych stronach

Co do samej rezerwacji to nie musisz tego zmniejszać bezpośrednio w bazie. Jeżeli obrabiasz dane w PHP to wszystko zależy od tego jak wygląda Twój kod.

Po to tworzy relacyjną bazę danych by takie informacje przygotowywał silnik bazy danych. Wiec ile dostępnych jest urządzę może wyciągnąć z bazy na podstawie liczby wypożyczonych oraz liczby zarezerwowanych w danym interwale czasowym.

Nie do końca widzę tabelę pracownik gdyż nie większego związku z wypożyczeniami. Chyba, że chcesz dodatkowo zapisać informacje kto co komu wypożyczył.

Jak już tworzysz taką bazą używaj tabel InnoDB i kluczy obcych które zapewniają integralność danych i transakcji. Przykładowo by uniknąć sytuacji, że n pracowników możne w tym samym czasie wypożyczyć to samo urządzenie.

Do tabeli sprzęt dodaj jeszcze kolumnę na nr_fabryczny ;)

Kolumny DATE zamienił bym na DATETIME by uzyskać większą dokładność informacji o operacjach.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Pole pracownik mam po to aby wiedzieć kto wypozyczył dany sprzęt aby w razie problemów dany pracownik rozwiązywał je z klientem.

Zastosowałem się do zmian, do rezerwacji dodałem jeszcze 'ilość' aby można było zarezerwować np 4 pary nart.

Czyli według Was ta baza powinna działać poprawnie? Założenie jest takie że przychodzi klient > wypożycza kijki, narty oraz strój narciarski (tranzakcja jest realizowana jako jedno wypożyczenie) >jak sobie rzyczy to wystawiam mu fakture

Odnośnik do komentarza
Udostępnij na innych stronach

@Czyli według Was ta baza powinna działać poprawnie?

Sama baza to jedno, a prawidłowe zapytania i dalsza obsługa to drugie, więc nie mam pojęcia "czy ta baza będzie ci działać prawidłowo" :] W informatyce przeważnie jest wile rozwiązań danego problemu :pisze:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności