Changes between Initial Version and Version 1 of RelationalModel


Ignore:
Timestamp:
04/20/26 08:48:47 (12 days ago)
Author:
231504
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v1 v1  
     1= Relational Model =
     2
     3== Relational diagram ==
     4
     5[[Image(geoturism1.7.jpeg)]]
     6
     7== Description ==
     8
     9The relational model represents the structured implementation of the geospatial tourism system described in the project. The model is designed to support efficient storage, querying, and management of tourism-related data, with a particular focus on geospatial relationships and travel planning.
     10
     11The schema includes several core components:
     12
     13* User management (users, roles, permissions)
     14* Trip organization and execution (trips, trip_executions, trip_participants)
     15* Geographical hierarchy (countries, regions, cities, locations, coordinates)
     16* Tourism services (hotels, rooms, attractions, facilities)
     17* Transportation systems (flight routes, transport routes, stations, bookings)
     18* User-generated content (reviews, photos)
     19
     20Relationships between entities are implemented using foreign keys, ensuring referential integrity. Many-to-many relationships are resolved using associative tables such as user_role_map, attraction_type_map, and trip_locations.
     21
     22== Modeling decisions and explanation ==
     23
     24'''Geographical hierarchy'''
     25
     26The geographical data is modeled using multiple normalized tables (countries, regions, cities, locations, coordinates). This allows flexible querying and avoids redundancy. Coordinates are separated into their own table to support potential spatial extensions and indexing.
     27
     28'''Trip structure'''
     29
     30Trips are separated into trips, trip_executions, and trip_participants. This design allows a single trip definition to have multiple executions over time, with different participants for each execution.
     31
     32'''Bookings and transportation'''
     33
     34Transportation is modeled using separate entities for flight routes, transport routes, and bookings (flight_bookings, bus_bookings). This separation allows flexibility in handling different transport types and supports realistic travel scenarios.
     35
     36'''Accommodation system'''
     37
     38Hotels and rooms are modeled separately, with an additional linking table (trip_participants_hotel_rooms) to associate participants with specific accommodations during trips.
     39
     40'''User roles and permissions'''
     41
     42User roles are implemented using a separate roles table and a mapping table (user_role_map). This allows flexible assignment of multiple roles to users and supports role-based access control.
     43
     44== Notes ==
     45
     46The model is normalized to reduce redundancy and ensure consistency. It is designed to support efficient querying, especially for complex operations such as route planning and location-based searches.
     47
     48Future improvements may include additional indexing strategies and further optimization of spatial queries using PostGIS.
     49
     50== Approval and development process ==
     51
     52The model was developed iteratively during laboratory sessions and refined through consultations with teaching assistants and professors. Feedback was incorporated into multiple revisions of the model, leading to the final version presented here.