| Column | Type | Constraints |
|---|---|---|
| hotel_id | INT | NOT NULL |
| hotel_navn | VARCHAR(100) | NOT NULL |
| adresse | VARCHAR(255) | NOT NULL |
| hotel_type | ENUM | NOT NULL DEFAULT 'S', ('S', 'L') |
| _pk_hotel | CONSTRAINT | PRIMARY KEY (hotel_id) |
| _chk_hotel_id | CONSTRAINT | CHECK (hotel_id BETWEEN 1 AND 5) |
| Column | Type | Constraints |
|---|---|---|
| gæste_id | INT | NOT NULL AUTO_INCREMENT |
| fornavn | VARCHAR(100) | NOT NULL |
| efternavn | VARCHAR(100) | NOT NULL |
| telefon_nummer | VARCHAR(20) | NOT NULL |
| VARCHAR(255) | NOT NULL | |
| adresse | VARCHAR(255) | NOT NULL |
| gæste_type | ENUM | NOT NULL DEFAULT 'D', ('D', 'F', 'U') |
| status | ENUM | DEFAULT 'Aktiv', ('Aktiv', 'Inaktiv', 'VIP') |
| noter | TEXT | NULL |
| oprettet_den | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP |
| _pk_gæst | CONSTRAINT | PRIMARY KEY (gæste_id) |
| _chk_email | CONSTRAINT | CHECK (email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$') |
| Column | Type | Constraints |
|---|---|---|
| værelse_id | INT | NOT NULL |
| hotel_id | INT | NOT NULL |
| værelse_type | ENUM | NOT NULL, ('D', 'S', 'F') |
| pris | DECIMAL(8,2) | NOT NULL |
| _pk_værelse | CONSTRAINT | PRIMARY KEY (værelse_id, hotel_id) |
| _chk_pris | CONSTRAINT | CHECK (pris BETWEEN 0 AND 9999) |
| _fk_værelse_hotel | CONSTRAINT | FOREIGN KEY (hotel_id) REFERENCES hoteller(hotel_id) |
| Column | Type | Constraints |
|---|---|---|
| booking_id | INT | NOT NULL AUTO_INCREMENT |
| gæste_id | INT | NOT NULL |
| hotel_id | INT | NOT NULL |
| værelse_id | INT | NOT NULL |
| check_ind_dato | DATE | NOT NULL |
| check_ud_dato | DATE | NOT NULL |
| online_booking | BOOLEAN | DEFAULT FALSE |
| fdm_medlem | BOOLEAN | DEFAULT FALSE |
| total_pris | DECIMAL(10,2) | NOT NULL |
| booking_status | ENUM | DEFAULT 'Afventende', ('Bekræftet', 'Afventende', 'Annulleret') |
| _pk_booking | CONSTRAINT | PRIMARY KEY (booking_id) |
| _fk_booking_gæst | CONSTRAINT | FOREIGN KEY (gæste_id) REFERENCES gæster(gæste_id) |
| _fk_booking_hotel | CONSTRAINT | FOREIGN KEY (hotel_id) REFERENCES hoteller(hotel_id) |
| _fk_booking_værelse | CONSTRAINT | FOREIGN KEY (værelse_id, hotel_id) REFERENCES værelser(værelse_id, hotel_id) |
| _chk_booking_datoer | CONSTRAINT | CHECK (check_ud_dato > check_ind_dato) |
| Column | Type | Constraints |
|---|---|---|
| personale_id | INT | NOT NULL AUTO_INCREMENT |
| fornavn | VARCHAR(100) | NOT NULL |
| efternavn | VARCHAR(100) | NOT NULL |
| stillingsbetegnelse | ENUM | NOT NULL, ('Administrator', 'Rengøringsassistent', 'Leder', 'Receptionist', 'Kok', 'Tjener') |
| hotel_id | INT | NOT NULL |
| ansættelsesdato | DATE | NOT NULL |
| løn | DECIMAL(10,2) | NULL |
| noter | TEXT | NULL |
| _pk_personale | CONSTRAINT | PRIMARY KEY (personale_id) |
| _fk_personale_hotel | CONSTRAINT | FOREIGN KEY (hotel_id) REFERENCES hoteller(hotel_id) |
| Column | Type | Constraints |
|---|---|---|
| cykel_id | INT | NOT NULL AUTO_INCREMENT |
| cykel_type | ENUM | NOT NULL, ('El-cykel', 'Ladcykel') |
| låsekode | VARCHAR(10) | NOT NULL |
| udlejnings_start_dato | DATE | NULL |
| udlejnings_slut_dato | DATE | NULL |
| gæste_id | INT | NULL |
| status | ENUM | NOT NULL DEFAULT 'Ledig', ('Ledig', 'Udlejet') |
| sidste_lejer_id | INT | NULL |
| _pk_cykel | CONSTRAINT | PRIMARY KEY (cykel_id) |
| _fk_cykel_gæst | CONSTRAINT | FOREIGN KEY (gæste_id) REFERENCES gæster(gæste_id) |
| _fk_cykel_sidste_lejer | CONSTRAINT | FOREIGN KEY (sidste_lejer_id) REFERENCES gæster(gæste_id) |
| Column | Type | Constraints |
|---|---|---|
| konference_id | INT | NOT NULL AUTO_INCREMENT |
| hotel_id | INT | NOT NULL |
| gæste_id | INT | NOT NULL |
| start_dato | DATE | NOT NULL |
| slut_dato | DATE | NOT NULL |
| antal_gæster | INT | NOT NULL |
| kunde_ønsker | TEXT | NULL |
| forplejning | VARCHAR(100) | NULL |
| udstyr | VARCHAR(100) | NULL |
| _pk_konference | CONSTRAINT | PRIMARY KEY (konference_id) |
| _fk_konference_hotel | CONSTRAINT | FOREIGN KEY (hotel_id) REFERENCES hoteller(hotel_id) |
| _fk_konference_gæst | CONSTRAINT | FOREIGN KEY (gæste_id) REFERENCES gæster(gæste_id) |
| _chk_konference_datoer | CONSTRAINT | CHECK (slut_dato > start_dato) |
| _chk_antal_gæster | CONSTRAINT | CHECK (antal_gæster > 0) |