Database simulazione esame di stato 2017

di il
3 risposte

Database simulazione esame di stato 2017

Salve,

ho risolto la seconda prova di maturità del 2017 . Nella foto ho allegato il DB che ho pensato per la risoluzione della prova. Diversamente dalle soluzioni proposte in giro per Internet, ho usato due tabelle per identificare eventuali feedback rilasciati dall' autista verso il passeggero e viceversa. In questo modo rinomino le chiavi esterne nelle tabelle interessate (FeedbackVersoAutisti, FeedbackVersoPasseggeri), in modo da distinguere il caso in cui l'autista lascia il feedback al passeggero, mentre il secondo caso accade esattamente l' opposto, ovvero il passeggero lascia il feedback all'autista, in Internet nessuno ha risolto in questo modo la prova, pertanto ho dei dubbi se sia corretto o meno procedere in questo modo per la gestione dei feedback. Per il resto, lo schema concettuale del Database coincide anche con le altre soluzioni online, per cui non ho particolari dubbi a riguardo.

Inoltre, chiunque avesse, a suo motivato giudizio opportune modifiche e suggerimenti nel perfezionare il DB,  si faccia avanti proponendo anche una sua eventuale soluzione.

Grazie.

In seguito riporto il testo della prova:

Un’azienda start-up vuole costruire una piattaforma Web che consenta il car pooling tra viaggiatori sul territorio nazionale, con l’obiettivo di diffondere l’uso di una mobilità flessibile e personalizzata in termini di percorsi e costi. Gli utenti della piattaforma possono essere di due tipi: utenti-autisti (coloro che offrono un passaggio con la propria macchina) e utenti-passeggeri (coloro che usufruiscono del passaggio). Gli autisti devono registrarsi sul sito ed inserire i propri dati: generalità, numero e scadenza patente di guida, dati dell’automobile utilizzata, recapito telefonico, email, fotografia. Per ogni viaggio che intendono condividere, gli autisti devono indicare città di partenza, città di destinazione, data ed ora di partenza, contributo economico richiesto ad ogni passeggero, tempi di percorrenza stimati. È responsabilità dell’autista, mano a mano che accetterà passeggeri per un certo viaggio, dichiarare chiuse le prenotazioni per quel viaggio, utilizzando un’apposita funzione sul portale. L’utente-passeggero si deve registrare sulla piattaforma, indicando cognome e nome, documento di identità, recapito telefonico ed email. La piattaforma fornisce ai passeggeri la possibilità di indicare città di partenza e di destinazione e data desiderata; presenta quindi un elenco di viaggi (per cui non siano ancora chiuse le prenotazioni), ciascuno con le caratteristiche dell’autista e le modalità del viaggio stesso inserite dall’autista (orario, eventuali soste previste alle stazioni di servizio, possibilità di caricare bagaglio o animali, …). Il passeggero sceglie quindi il viaggio desiderato con il corrispondente autista, anche esaminando il voto medio e i giudizi dei feedback assegnati tramite la piattaforma dai precedenti passeggeri all’autista stesso, e si prenota. Le informazioni sul passeggero vengono inviate per email dalla piattaforma all’autista scelto, il quale può consultare sul portale il voto medio e i giudizi dei feedback ricevuti dal passeggero da parte di precedenti autisti e decidere se accettarlo o meno. Il passeggero di conseguenza riceverà una email di accettazione o di rifiuto della prenotazione effettuata, contenente, in caso di accettazione, un promemoria con città di partenza e destinazione, data e orario del viaggio, dati dell’autista e della sua automobile. A viaggio effettuato, il passeggero può inserire un feedback sull’autista, espresso sia in forma di voto numerico che di giudizio discorsivo. A sua volta, l’autista può inserire un feedback sul passeggero, espresso sia in forma di voto numerico che di giudizio discorsivo. Sia i voti medi che i singoli giudizi dei feedback ricevuti da ciascun autista sono disponibili ai passeggeri; analogamente, sia i voti medi che i singoli giudizi dei feedback ricevuti da ciascun passeggero sono disponibili agli autisti.

3 Risposte

  • Re: Database simulazione esame di stato 2017

    1) autisti e automobili essendo una condivisione di percorso, suppone che l'automobile sia di un privato che si iscrive al sito per “dare passaggi”. Non credo che abbia un parco auto, ergo, è un collegamento 1 a 1.

    2) serve una tabella voti (io parlo italiano) 

    A questa tabella accedono sia passeggeri che autisti lasciando un voto.

    Tabella voti: Id voto, id votante, tipo votante (se autista/utente), voto, commento, destinatario (id autista o id passeggero ambedue unici).

    Una query filtra e somma i voti per autista o utente.

    3) Percorsi, potrebbe includere delle coincidenze tra vie limitrofe fra autisti, quindi si dovrebbero includere le vie percorse e controllare eventuali coincidenze (anche di orario).

    Potrebbe succedere che dal punto a al punto b l'autista caio passi per via della speranza alle 12:30 pre poi andare in via dei tigli, mentre l'autista sempronio la percorra alle 12:50 per proseguire per via degli abeti…

    Sarebbe il passeggero a prenotare due “passaggi” aspettando la coincidenza per 20 minuti.

    Ergo: id autista, strada, orario, direzione ecc…

    Percorso passeggero

    Id percorso, id viaggio, utente, autista, data, ora inizio, strada, ora fine, strada.

    Viaggi: id viaggio, id percorso.

    Così un viaggio inizia con caio e finisce con sempronio.

    Oppure n autisti con n passeggeri…. 

    In ogni caso in core del database è il viaggio del/dei passeggero/i gli autisti sono solo un database da cui attingere per formare il viaggio. Non credo che siano gli autisti a prenotare i passeggeri ma i passeggeri a prenotre gli autisti in base alla disponibilità.

  • Re: Database simulazione esame di stato 2017

    Ciao.

    Ho considerato automobili una tabella a molti rispetto ad autisti poichè ho pensato che un autista può avere anche più di una macchina (ad esempio 2), che utilizzano per svolgere questo lavoro. 

    Ho scomposto FeedbackVersoPasseggero e FeedbackVersoAutista,per distinguere i casi in cui un passeggero fa la recensione all' autista o accade il viceversa. Inizialmente avevo usato una tabella unica,come mi hai proposto tu, ma usandola non si capisce chi ha effettuato la recensione verso chi. Anche se provassi a mettere la PK destinatario come hai suggerito, verrebbe collegata solo a passeggeri nel caso faccia una 1:N verso Voto,oppure l' essatto contrario collegandola verso Autisti. Dovrei quindi creare una FK che si riferisca contemporanemente sia a id_passeggero sia a id_autista.

    Per quanto riguarda la prenotazione degli autisti verso i passeggeri non ho ben capito cosa intendi: un autista decide A CHI  EFFETTUARE IL SERVIZIO DI TAXI  per mezzo della tabella VIAGGI ( Dalla quale visiona e sceglie  uno dei tanti utenti intenti a fare quel determinato viaggio ) . 
    L’entità PASSEGGERI e  AUTISTA secondo me dovrebbero avere una relazione 1  a N con la tabella VIAGGIO.  Poiché ,  è considerabile che una qualsiasi istanza di queste due entità può  compiere uno stesso viaggio più volte…

  • Re: Database simulazione esame di stato 2017

    Si, magari puoi considerare 1aN autisti / auto.

    A query come stai messo?

    Select * from voti where IdVotato=x and tipologia='autista' se vuoi i voti dati all'autista

    Select ….. where IdVotato=x and tipologia='passeggero' se vuoi i voti del passeggero.

    Dubito che importi quale autista x ha dato il voto al passeggero y e viceversa, piuttosto sembra importante il commento.

    “Per cui un autista decide A CHI  EFFETTUARE IL SERVIZIO DI TAXI  per mezzo della tabella VIAGGI ( Dalla quale visiona e sceglie  uno dei tanti utenti intenti a fare quel determinato viaggio ) . ”

    Quindi in uno strappo tra palermo e milano si rischia di non trovare l'autista tra napoli e roma? Credo che seun autista mostra il percorso e la disponibilità dei posti non possa rifiutarsi. Magari la penso come ad un passeggero che in base ai percorsi scelga l'autista con più voti a favore. Tutto qua.

Devi accedere o registrarti per scrivere nel forum
3 risposte