Sådan designer du et ER-diagram til et turismesystem: Trin-for-trin guide
Et Entity-Relationship (ER) diagram modellerer datastrukturen i et turisme-informationssystem. Her er et praktisk rammeværk til at designe et.
Kerneentiteter (tabeller)
- Turist – tourist_id (PK), navn, email, telefon, nationalitet, pasnummer, præferencer, loyalitetsniveau.
- Destination – dest_id (PK), navn, land, region, beskrivelse, lat/long, sæsonalitet.
- Seværdighed – attr_id (PK), dest_id (FK), navn, type (natur, kultur, temapark), åbningstider, billetpris, kapacitet.
- Overnatning – acc_id (PK), dest_id (FK), navn, type (hotel, homestay, resort), stjerner, værelsesantal, faciliteter.
- Transport – trans_id (PK), origin_dest_id, destination_dest_id, mode (flyvning, tog, bus, færge), tidsplan, pris, kapacitet.
- Rejsepakke – pkg_id (PK), navn, beskrivelse, varighed, basispris, inklusioner, operator_id (FK).
- Booking/Reservation – booking_id (PK), tourist_id (FK), pkg_id/attr_id/acc_id/trans_id (polymorf eller separate tabeller), dato, status, payment_id.
- Betaling – payment_id (PK), booking_id (FK), beløb, valuta, metode, status, transaktionsref.
- Anmeldelse – review_id (PK), tourist_id (FK), entity_type, entity_id, rating, kommentar, dato.
- Bureau/Operatør – org_id (PK), navn, kontakt, licensnr., provisionsrate.
Vigtige relationer
- Turist 1:N Booking
- Destination 1:N Seværdighed, Overnatning, Transport
- Rejsepakke N:M Seværdighed/Overnatning/Transport (via PackageComponent)
- Bureau 1:N Rejsepakke
- Booking 1:1 Betaling
Design-trin
- Opstil alle brugerhistorier (søg, book, anmeld, administrer, rapport).
- Identificer entiteter & attributter fra historier.
- Definer primærnøgler, fremmednøgler, kardinaliteter.
- Normaliser til 3NF (undgå redundans).
- Tegn ved Crow's Foot eller Chen-notation (værktøjer: draw.io, Lucidchart, MySQL Workbench, dbdiagram.io).
- Valider med interessenter; iterer.
Pro-tips
- Brug supertype/subtype til Overnatning (Hotel, Hostel, Camping) hvis attributter divergerer.
- Modellér dynamisk prissætning via en separat PriceCalendar-entitet.
- Inkludér audit-felter (created_at, updated_by) på alle tabeller.
- Overvej GIS-udvidelser (PostGIS) til rumlige forespørgsler (nærliggende seværdigheder).
Et vel-designet ER-diagram er blåprintet til en skalerbar, vedligeholdelsesvenlig turismeplatform.