Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    aiuto per creazione tabella

    salve a tutti volevo un aiuto per creare una tabella in MYSQL.
    ho un database di un agenzia di viaggi e la traccia mi dice che ogni viaggio avrà un hotel abbinato e ogni hotel avrà 50 posti letto: 5 stanze di 2 posti, 5 di 4 posti,5 di 3 posti e 1 di 5 posti.
    ora la mia domanda è in mysql quando creo la tabella come posso fare in modo ke siano rispettati i 50 posti e che non si inseriscano ad esempio 6 stanze di 2 posti?

    in generale ho pensato di fare
    un associazione N a N tra hotel e stanza e ho collegato anche partecipante a stanza con un associazione 1 A N.
    mi sono ritrovata con
    STANZA(numerostanza(pk),tipo(doppia,quadrupla..),s tato(disponibile o occupata), idpartecipante(fk))
    ma mi sa che non è una cosa molto giusta! xD
    cosa mi consigliate? grazzie mille anticipatamente vi prego rispondetemiiii

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao,

    non riesco bene a capire il problema....
    vuoi creare anche una tabella delle stanze?

    visto che parli di 'traccia' forse il tuo e' un esercizio; si dovrebbe capire bene il problema.

    io personalmente, visto che ogni hotel ha un certo numero di stanze e posti letto, effettuerei un controllo unicamente in fase di inserimento dati, in pratica al momento della prenotazione verificherei la disponibilità dell'eventuale stanza richiesta. ma ripero dovrei capire meglio l'esigenza finale

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    al 99.99% è un esercizio, visti i dati.

    penso che la domanda si potrebbe riformulare così
    "come faccio a far sì che la somma delle stanze occupate sia <=50 "?

    Così a occhio le risposte sono 3, che spaziano da "veramente-sporche" a "inutili" a "come farei"

    1) veramente sporca. Crei semplicemente 50 campi hardcoded.
    Lì sei certa al 10000000000000000% che al massimo ne avrai 50 occupate

    2) "inutili". fai un trigger che controlla, all'inserimento, quanti "flag di occupazione\stanze" ci sono. Non ha un gran senso, perchè se fallisce non ritorna in maniera semplice un errore all'applicazione qualcosa tipo "le stanze son tutte piene"

    3) "come farei". ovviamente lato applicazione. locki il pool [presumibilmente la concorrenza non è così importante, altrimenti devi usare un ACID serializzabile per la transazione], conti quante son occupate <50 OK, altrimenti "son pieno" e rilasci il pool

  4. #4
    Grazie a entrambi per il vostro aiuto ma il mio problema non è semplicemente controllare che le stanze prenotate siano <50 ma , come evidentemente non avevo spiegato bene nella domanda xD, devo far prenotare solo massimo 5 doppie, massimo 5 quadruple, 5 triple, e 1 quintupla...FORSE NON DOVREI CREARE LA TABELLA STANZA MA LE TABELLE DOPPIA TRIPLA..ECC? AIUTOOO COSA MI CONSIGLIATE? GRAZIE MILLE!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da SILICONVALERIA
    Grazie a entrambi per il vostro aiuto ma il mio problema non è semplicemente controllare che le stanze prenotate siano <50 ma , come evidentemente non avevo spiegato bene nella domanda xD, devo far prenotare solo massimo 5 doppie, massimo 5 quadruple, 5 triple, e 1 quintupla...FORSE NON DOVREI CREARE LA TABELLA STANZA MA LE TABELLE DOPPIA TRIPLA..ECC? AIUTOOO COSA MI CONSIGLIATE? GRAZIE MILLE!
    il suggerimento lato applicazione è banale, ti servono più vincoli.

    Crea un insieme di stanze, ognuna delle quali col numero di posti

    idstanza: integer
    quantiposti:integer;
    flagoccupata:integer;

    e poi conti per ogni categoria (1, 2, 3, 4, 5 posti) quante son libere.
    indirettamente (con un group by su cui cicli), o direttamente
    (con una funzione chiamata 5 volte).

    usa un po' di fantasia...

  6. #6
    scusami ma non ho ben capito il tuo consiglio xD , il fatto è che non è un problema di fantasia è che non riesco proprio a capire com' è possibile fare il controllo, mi hai consigliato di creare 4 tabelle (doppia, tripla....)?
    io credo che creando le 4 tabelle avrei risolto il mio problema, se solo però sapessi eseguire il controllo:
    se creo ad esempio la tabella DOPPIA(stanzaN(pk)[1,2,3,4,5,], disponibilità[occupata o libera],nomehotel(fk)[l'hotel a cui è abbinata la stanza]) in mysql come faccio a fare in modo che stanzaN sia < di 5? cio che se sanzaN diventa 6 deve uscire a video :non ci sono piu doppie disonibili . e scarta l' inserimento?se potresti scrivermi la sintassi in mysql te ne sarei grata, se non chiedo troppo.
    GRAZIE MILLE PER IL TUO AIUTO SEI GENTILISSSSSSIMO!( XD SPERO MI RISPONDERAI)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da SILICONVALERIA
    scusami ma non ho ben capito il tuo consiglio xD , il fatto è che non è un problema di fantasia è che non riesco proprio a capire com' è possibile fare il controllo, mi hai consigliato di creare 4 tabelle (doppia, tripla....)?
    io credo che creando le 4 tabelle avrei risolto il mio problema, se solo però sapessi eseguire il controllo:
    se creo ad esempio la tabella DOPPIA(stanzaN(pk)[1,2,3,4,5,], disponibilità[occupata o libera],nomehotel(fk)[l'hotel a cui è abbinata la stanza]) in mysql come faccio a fare in modo che stanzaN sia < di 5? cio che se sanzaN diventa 6 deve uscire a video :non ci sono piu doppie disonibili . e scarta l' inserimento?se potresti scrivermi la sintassi in mysql te ne sarei grata, se non chiedo troppo.
    GRAZIE MILLE PER IL TUO AIUTO SEI GENTILISSSSSSIMO!( XD SPERO MI RISPONDERAI)
    C'è qualcosa che manca al discorso.
    Ossia è il lato-applicazione.
    Se hai una applicazione che può darti "intelligenza", oppure se vuoi (o devi) fare tutto dentro mysql (quindi una stored procedure)
    ---
    L'approccio che farei io è, ovviamente, lato applicazione.

    Esisterà "da qualche parte" una funzione C, PHP, Delphi o quello che vuoi che fa "occupa una stanza".
    Lì dentro, nella funzione "occupa una stanza" ci metterai i controlli.
    Ovvero conterai quante stanze di quell'hotel sono occupate, e dirai "OK lo faccio", oppure "no"
    ---
    Quello che non mi è chiaro è se devi fare un PROGRAMMA che si appoggia a mysql per fare qualcosa, oppure vuoi che mysql "automagicamente" ti impedisca di fare qualcosa, perchè c'è un programma suo (trigger e/o stored) che si attiva al momento dell'inserimento dei dati e "magicamente" esegue i controlli

  8. #8
    dovrei utilizzare MYSQL ma visto che il mio prof è un po incompetente e non ci ha mai spiegato niente di niente potrei anche utilizzare dreamweaver(?!?)......il punto è ke non so come xD

  9. #9
    C'è IN REALTà QUELLO CHE NON RIESCO A CAPIRE è SE SI PUO FARE O NO UN BANALISSIMO CHECK CON MYSQL....e se proprio con mysql è difficile farlo ad esempio con dreamweaver?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da SILICONVALERIA
    C'è IN REALTà QUELLO CHE NON RIESCO A CAPIRE è SE SI PUO FARE O NO UN BANALISSIMO CHECK CON MYSQL....
    A me non sembrano per nulla banali i vincoli che vuoi mettere.
    e se proprio con mysql è difficile farlo ad esempio con dreamweaver?
    non vedo come, a meno di non fare un programma javascript

    ---
    Continuo ad essere un po' confuso su quello che volete fare.

    Un'applicazione X scritta in un linguaggio di programmazione qualsiasi che si appoggia a mysql per mantenere i dati?

    Oppure devi fare un esercizio su mysql e basta?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.