0

I've got this situation: a set of hotel that has to deal with bookings. Each client can choose a room of the given hotel, from a date START_DATE to a date END_DATE.
I want to check in the table BOOKING if it's possible to book from the date START_DATE to END_DATE because there's no other booking in that period.
Here's the code:

CREATE TABLE HOTEL(
    Name varchar(30) PRIMARY KEY,
    City varchar(30)
);

CREATE TABLE ROOM(
    HotelName varchar(30) REFERENCES HOTEL (Name),
    RoomNumber int(11),
    PRIMARY KEY(HotelName , RoomNumber )
);

CREATE TABLE CLIENT(
    ClientCode char(16) PRIMARY KEY
);

CREATE TABLE BOOKING(
    HotelName varchar(30)
    RoomNumber int(11),
    ClientCode char(16) REFERENCES CLIENT(ClientCode ),
    StartDate date,
    EndDate date,
    PRIMARY KEY(HotelName , NumeroStanza, CodiceCliente, StartDate, EndDate),
    FOREIGN KEY (HotelName , RoomNumber ) REFERENCES ROOM(HotelName , RoomNumber ),
    CHECK (????)
);

How can I say: CHECK if given START_DATE < END_DATE, then START_DATE not between A and B, then END_DATE not between A and B, for every interval of date A and B already in the table?

The dialet is MySql

Many thanks

incud
  • 541
  • 1
  • 9
  • 17

0 Answers0