• User Attivo

    dubbio su come realizzare una tabella del db

    ciao a tutti,
    ho realizzato una tabella "anagrafica attori" e una "archivio film".
    Ogni attore naturalmente ha il suo ID della tabella "anagrafica attori" e nella tabella "archivio film" ci sono 5 campi: "attore1", "attore2", "attore3", "attore4", "attore5", dove inserisco l'ID degli attori che hanno partecipato a quel film.

    Però in questo modo sono vincolato a poterne inserire solo 5, invece vorrei avere la possibilità di poter inserire quanti nominativi voglio, che metodo usate voi per poterlo fare?

    filmup.leonardo.it/oceans-13.htm

    In questo link c'è un esempio di come lo vorrei realizzare, guardate quanti attori sono riusciti a inserire in questo film.


  • User

    Invece di utilizzare un numero limitato di campi duplica il campo o, meglio, crea una tabella apposita di interfaccia.

    Mi spiego meglio:
    Tabella UNO = Anagrafica Attori con un Id_Attori per ogni record
    Tabella DUE = Archivio Film con un Id_Film per ogni record
    (e queste sono quelle che hai già creato)

    Tabella TRE = Abbina Attore/Film (da creare)
    In questa tabella in ogni record dovrai riportare solo l' Id_Film e l' Id_Attore, ripetendo l' Id_Film per quanti Attori vuoi inserire.
    In lettura, a seconda di come imposti la query, potrai così indifferentemente vedere quali Attori sono in un Film e quali Film ha fatto un Attore.


  • User Attivo

    @PippoJoe said:

    Tabella TRE = Abbina Attore/Film (da creare)
    In questa tabella in ogni record dovrai riportare solo l' Id_Film e l' Id_Attore, ripetendo l' Id_Film per quanti Attori vuoi inserire.

    Allora era come pensavo, grazie, ma nel sito prima devo inserire il nuovo film (insert table "film") poi entro nella scheda del film appena creata e lì aggiungo tutti gli attori che hanno partecipato a quel film? (insert table "attori_film") per fare questo nella scheda film ci deve essere una select (menu a tendina) contenente tutti i cognomi degli attori presenti nel db, seleziono l'attore e clicco su inserisci, poi riseleziono il nominativo del secondo attore e faccio inserisci, poi il terzo, il quarto e così via.
    Si fa così, giusto?


  • User

    In sostanza si, il procedimento è corretto dal punto di vista dell'inserimento dei dati però devi inserire i record con gli Attori abbinati ai Film in una nuova Tabella (quella che ho chiamto Abbina Attori/Film) altrimenti ti moltiplichi inutilmente i record della tabella Film dove, presumo, oltre il nome del Film avrai anche altre informazioni tipo Regia, Produzione, Anno, ecc.


  • User Attivo

    ok, ma metti che ho inserito 10 attori nella scheda del film come faccio nel caso avessi sbagliato a eliminarli o a levare un attore e metterne un'altro?


  • User

    Sempre agendo sulla Tabella di Appoggio eliminando o modificando il Record errato.
    La due Tabelle di base (Attori e Film) devono essere toccate solo in caso di variazioni dei dati sull'Attore (nome errato, dati anagrafici errati, ecc.) o sul Film (titolo errato, regista errato, ecc.); tutti gli abbinamenti e le eventuali modifiche di abbinamenti tra Attori e Film devono avvenire sulla terza tabella.


  • User Attivo

    grazie, sei stato chiarissimo 🙂 un'ultima cosa che ancora non capisco è però, fisicamente nella pagina scheda film ora visualizzo un elenco di dieci attori, ma come faccio a cancellarli.
    Devo mettere un checkbox accanto a ogni nome dell'attore?
    E se è così nella query cosa ci scrivo?


  • User

    Credo che con una check box puoi risolvere il problema però non so dirti come fare la query (anch'io non sono espertissimo).

    Per le cancellazioni di record, io preferisco agire direttamente sul DB e non da pagina web per due motivi principali:

    1. chi è autorizzato a cancellare deve essere una sola persona (il gestore del DB) e quindi fornire la possibilità di cancellare, anche se con protezione da password, può essere pericoloso.

    2. l'impostazione della query selettiva di cancellazione, come già detto, non mi è molto chiara e quindi per evitare problemi cerco di non usarla


  • User Attivo

    ok, grazie ancora :ciauz:


  • User Attivo

    riesumo questa discussione per un problema simile:

    ho una tabella ARTICOLI - id_articoli
    e una tabella FATTURA - id_fattura - id_articoli

    un cliente acquista 5 articoli quindi nel db succede questo:

    id_fattura 1 - id_articoli 28
    id_fattura 2 - id_articoli 37
    id_fattura 3 - id_articoli 39
    id_fattura 4 - id_articoli 41
    id_fattura 5 - id_articoli 54

    ora però io devo fare una sola fattura di 5 articoli acquistati, ma nel db ne risultano 5!! Qual'è il metodo giusto?