2012-08-01 14 views
6

System rezerwacji samochodów jest bardzo popularnym pytaniem w Wywiadzie dla programistów. Zaprojektowałem następującą strukturę ER/strukturę OOP gdy poproszono mnie to:Wywiad projektowy - System rezerwacji samochodu

klasa samochodów/tabela ma samochodów ID # wpisz (Compact, Standard itp), marki, modelu Klient ma klienta ID # itp Rezerwacja jest tabelą asocjacyjną przechowującą ID samochodu, numer ID klienta i datę, dla której samochód jest zarezerwowany. Dla uproszczenia możemy założyć, że samochód można zarezerwować tylko w ciągu kilku dni.

Oto najtrudniejsza część, w której zbankrutowałem - Co się dzieje, gdy klient 1 zastrzega kompaktowy samochód z Id Car 3 w dniu 27 lipca. Co się stanie, jeśli samochód 3 zostanie zsumowany 24 lipca. Inne kompaktowe samochody są dostępne, jednak między 24 i 27 lipca wszyscy zostali zabrani. Więc kiedy Klient 1 przybędzie 27 lipca, ostatecznie nie ma samochodu.

Usterka, która moim zdaniem jest przeszkodą w łączeniu samochodów i klientów w tabeli zastrzeżeń. Czy istnieje lepszy sposób modelować ten związek, a także regularne przypadki użycia takich znaleźć dostępną samochodu do określonej daty, zarezerwować go do tej daty itp

Odpowiedz

2

można dodać kolejne pole boolean do Car zwanego Working. Jeśli Car 3 jest wyniosły wtedy

  • ustawić Working do false.
  • szukaj go w Reservation.
  • jeśli tam jest, poszukaj innego samochodu tego typu w Car.
  • jeśli go znajdziesz, wymień ten samochód na inny samochód w Reservation.
  • W innym przypadku zadzwoń do klienta.
+1

Następnie pojawia się pytanie - w którym momencie chcemy sprawdzić, czy samochód działa? Nocny skrypt, który uruchamia i zastępuje wszystkie sumowane/uszkodzone samochody innymi równoważnymi czynnymi? –

+0

Zdecydowałeś się użyć modelu relacji podmiotu. "Samochód" i "Klient" to zdecydowanie byty. "Rezerwacja" to zdecydowanie relacja między "Samochodem" a "Klientem". To, czy "Samochód" jest sumowany/uszkodzony, jest z pewnością "własnością" podmiotu "Samochód". Ten projekt jest zgodny z zasadami modelu relacji podmiot i powinien wytrzymać różne przypadki użycia, które są w nim rzucane. W tym twoje ostatnie pytanie. –

Powiązane problemy