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

    Non so discriminare tra chiavi e attributi, Modello concettuale

    Ciao a tutti, sto modellando lo schema concettuale di un sito di supporto per un cinema;
    un sito che permette agli utenti di fare biglietti online e prenotare posti a sedere per precisi spettacoli, dopo aver scelto data, ora, sala etc.

    Una persona puo` fare un singolo account sul sito e prenotare posti per piu persone in teoria, anche posti a sedere staccati, un po come si farebbe nella realta. Il mio problema e` su come sia corretto gestire e poter riconoscere che questi biglietti, che poi vengono stampati, erano stati fatti da 1 stesso account, xk solo l account ha la sua chiave primaria con la prenotazione;


    elenco qui di seguito il prototipo/bozza delle mie classi-oggetto che intendo usare nel database:

    i campi tra parentesi sono le chiavi, che non compaiono in realta nello schema concettuale, le ho messe solo come nota, il resto sono gli attributi

    PRENOTAZIONI ** fa fede il codice di carta, introdurre discorso amibientalista sul risparmio della carta
    -(id_prenotazioni) ** sapere in seguito di quale prenotazione si parla
    -(id_account) ** chi l ha fatta
    -(sala_id) ** in che sala
    -film ** quale spettacolo
    -pos_posto ** che posto ha preso
    -orario_inzio_film ** da che ora
    -orario_fine_film ** a che ora
    -data ** in che giorno

    BIGLIETTI ** serve per incasso, calcolo prenotazioni, altro?
    -(id_prenotazioni) ** codice di chi l ha fatta, anche x piu persone
    -(num_codice) ** codice del biglietto da stampare, a casa o all atm
    -orario_inzio_film ** sai a che ora inizia il film
    -orario_fine_film ** sai a che ora inizia il film
    -sala ** sai dove vedere il film
    -posto a sedere ** sai dove sederti


    in 2 parole mi chieo: se io con il mio account da cliente, faccio 5 biglietti, di questi 5 come posso dire che sono stati fatti dal mio account? se contengono la stessa chiave primaria la replico 5 volte, e non credo sia corretto ma potrebbe essere 1 eccezzione..
    alternative? idee?

  2. #2
    Utente bannato
    Registrato dal
    Nov 2011
    Messaggi
    150

    Re: Non so discriminare tra chiavi e attributi, Modello concettuale

    Originariamente inviato da menghins

    BIGLIETTI ** serve per incasso, calcolo prenotazioni, altro?
    -(id_account)
    -(id_prenotazioni) ** codice di chi l ha fatta, anche x piu persone
    -(num_codice) ** codice del biglietto da stampare, a casa o all atm
    -orario_inzio_film ** sai a che ora inizia il film
    -orario_fine_film ** sai a che ora inizia il film
    -sala ** sai dove vedere il film
    -posto a sedere ** sai dove sederti


    in 2 parole mi chieo: se io con il mio account da cliente, faccio 5 biglietti, di questi 5 come posso dire che sono stati fatti dal mio account? se contengono la stessa chiave primaria la replico 5 volte, e non credo sia corretto ma potrebbe essere 1 eccezzione..
    alternative? idee?
    Guarda, non sono certo un espertone di database, ma mi pare che basti inserire l'id_account nel biglietto.
    Fine del problema.

    Quando vorrai avere tutti i biglietti di tizio ti basterà fare un join proprio su id_account

  3. #3
    ma è corretto avere la stessa chiave replicata su 4 biglietti con posti a sedere diversi? anche i posti a sedere sono chiavi

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Non vedo perchè no. La chiave che replichi è chiave primaria in un'altra tabella (del tutto diversa), nei biglietti è solamente una chiave esterna e quindi puoi avere anche molti record (in questo caso molti biglietti) che la contengono con lo stesso valore

    vedi qui per esempio: http://www.html.it/pag/18275/chiavi-...hiavi-esterne/

  5. #5
    Allora... mi pare che tu faccia un po' di confusione su cos'è una chiave primaria...

    nella tabella "prenotazioni" l'unica chiave primaria è
    - id_prenotazioni


    - id_account
    - id_sala
    non sono chiavi primarie, al massimo (anzi è consigliabile) verranno settate come foreign key che referenziano rispettivamente le tabelle con gli utenti/account e con le sale)


    poi nella tabella "biglietti" l'unica chiave è
    num_codice (immagino che ogni biglietto abbia un codice univoco)

    - id_prenotazione
    non è una chiave primaria, ma (di nuovo) sarà una foreign key che referenzia la tabella "prenotazioni" al campo id_prenotazione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.