Luoghi dell'evento - luogo e hotel (domanda concettuale sulla progettazione del database) [chiuso]

0

Spero che questa domanda sia qui.

TL; DR

Progettazione di database per luoghi di eventi (sede e hotel), hotel possono essere luoghi.

Versione lunga

Introduzione

Sto sviluppando un software per la formazione. I corsi di formazione sono come un modello con informazioni e gli eventi mostrano il tempo e il luogo in cui si verificherà un allenamento specifico. Gli eventi hanno un luogo in cui accadono, la sede. Gli eventi hanno anche un hotel (opzionale), dove i partecipanti possono prenotare le camere. Un hotel può anche essere una sede poiché spesso dispongono di sale conferenze. Quindi, se un hotel è sede tutte le informazioni di contatto e indirizzo per l'hotel e la sede sono ovviamente le stesse.

Domanda

Qual è il modo migliore per progettare il database per hotel e sede, in modo che un hotel possa anche essere una sede.

Obiettivo del design:

  • evita i dati duplicati se un hotel è una sede
  • facile da gestire attraverso il mio software

Possibili soluzioni

  1. una tabella "Luogo" con colonne "hotel_ID" e "venue_ID" a cui si collega i tavoli "Hotel" e "Venue"
  2. una tabella "luogo" con una colonna "isHotel" e "isVenue" che indica quale è
  3. due tabelle separate "hotel" e "venue" e nella tabella degli hotel una colonna "venueID" che collega a una sede?

    ... (qualcosa di diverso)

posta michaK 19.10.2015 - 11:34
fonte

2 risposte

2

avoid duplicate data if a hotel is a venue

Questo è davvero un problema? Se disponi di dati disponibili, dovresti cercare di vedere quante duplicazioni ci sono realmente. Un hotel con spazio per convention potrebbe avere nomi diversi, indirizzi di fatturazione, informazioni di contatto, ecc. Inoltre, un singolo hotel potrebbe avere più luoghi di incontro con nomi diversi. Evitare potenziali dati duplicati potrebbe diventare difficile se stai cercando di offrire una certa flessibilità. Per quanto riguarda i dati, quanto spesso cambieranno questi luoghi? Se trasferiscono un hotel, probabilmente farai comunque una nuova entrata.

easy to handle through my software

Quanto è importante la domanda per l'utente, "Quali sedi sono anche un hotel?" È possibile ottenere un modo con un tavolo Venue e tabella Hotel. C'è sempre un luogo, quindi potrebbe esserci un campo FK_Hotel_ID per il collegamento facoltativo.

Con 3 tabelle, puoi avere i dati condivisi nella tabella dei luoghi, ma ancora una volta, devi decidere quanto c'è realmente.  - Place (PK_PlaceID)  - Hotel (FK_PlaceID)  - Venue (FL_PlaceID)

È molto più facile eliminare la tabella dei luoghi nelle app più piccole e rinunciare a alcuni vantaggi di reporting e integrità dei dati. Ovviamente con migliaia di posti c'è una maggiore necessità di evitare la duplicazione e rendere più facili le modifiche multiple dei dati.

Le tabelle Hotel e Venue potrebbero avere dati specifici per loro e dati facoltativi (indirizzo di fatturazione) della tabella dei luoghi. Più normalizzi i tuoi dati in questo modo, più difficile (oltre a controllare un campo booleano) diventa per determinare quali luoghi raddoppiano come hotel.

Se stai suggerendo hotel per più sedi (specialmente per eventi di grandi dimensioni in cui hai esaurito lo spazio) e hai bisogno di indicare fino a che punto sono, avrai bisogno di una sorta di tabella degli eventi che gestisca i molti-a-molti rapporto con locali e hotel.

    
risposta data 19.10.2015 - 19:16
fonte
0

Puoi avere 3 entità. Indirizzo, Hotel e Sede. Si memorizza AddressId come FK in Hotel e Venue. Quindi se il tuo luogo e il tuo hotel hanno lo stesso indirizzo non devi inserire di nuovo l'indirizzo.

    
risposta data 19.10.2015 - 11:59
fonte

Leggi altre domande sui tag