= Entity-Relationship Model v.1 = '''Diagram''' [[Image(ERModel_v1.png)]] '''Data requirements''' === Entities === ==== Users ==== Represents the users of the system who can make room reservations or manage the system. * '''Candidate keys''': username, email * '''Primary key''': user_id * '''Attributes''': * user_id – integer, required * username – text, required, unique * email – text, required, unique * role – text, required (user/admin) ==== Rooms ==== Represents rooms that can be reserved in the system. * '''Candidate keys''': room_number * '''Primary key''': room_id * '''Attributes''': * room_id – integer, required * room_number – text, required, unique * capacity – integer, required * type – text, required (classroom, office, meeting room) ==== Reservations ==== Represents reservations made by users for specific rooms and time intervals. * '''Candidate keys''': (room_id, start_time, end_time) * '''Primary key''': reservation_id * '''Attributes''': * reservation_id – integer, required * start_time – datetime, required * end_time – datetime, required * user_id – integer, required * room_id – integer, required === Relationships === * '''Users – Reservations''': One user can create multiple reservations, but each reservation is created by exactly one user. * '''Rooms – Reservations''': One room can be reserved multiple times, but each reservation refers to exactly one room. == Entity-Relationship Model History == * '''v1''' – Initial ER model created according to the project requirements.