podwojne wypozyczenie w tabeli// SSMS//

0

Witam.
Chciałem stworzyć tabele wypożyczenia do wypożyczalni samochodów. Ale jest pewien problem ponieważ jeżeli np klient A wypożyczy samochód na 5 dni to według mojego kodu Klient B może wypożyczyć ten sam samochód. Pytanie jak zrobić żeby w tym samym czasie nie mogły być wypożyczone te same samochody?

CREATE TABLE rezerwacje (
  nrSamochodu INT NOT NULL,
  dataNabycia DATE NOT NULL,
  dataOddania DATE NOT NULL,
  idKlienta INT NOT NULL,
  PRIMARY KEY (nrSamochodu, dataNabycia),
  CHECK (dataNabycia <= dataOddania)
); 

insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (1,'2020-11-12','2020-11-18',1);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (3,'2020-10-10','2020-11-18',2);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (2,'2020-11-12','2020-11-13',3);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (1,'2020-11-16','2020-11-22',4);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (5,'2020-11-15','2020-12-20',1);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (3,'2020-10-09','2020-10-10',1);


select * From rezerwacje WHERE nrSamochodu in(select nrSamochodu from rezerwacje group by nrSamochodu having min(dataNabycia) < max(dataNabycia));
1

Może:

CzyWypozyczony = 1|0
i zwalniać jeśli wrócił a jak jest to nie pozwolić go wybrać

0

Dobra udało mi się :) Dzięki wielkie :D Zrobiłem drugą tabele z czywypozyczono i priamry na nrsamochodu i działa

A jak rozwiażesz taką sytuacje:

insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (1,'2020-11-12','2020-11-18',1);
insert into rezerwacje(nrSamochodu,dataNabycia,dataOddania,idKlienta) values (1,'2020-12-10','2020-12-18',2);

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