Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    152

    Struttura Database + estraz dati da + tabelle relazionate

    Salve a tutti . Ho iniziato da poco con il php+mysql. Database composti da una tabella inizio agestirli non dico benino , ma decentemente .Adesso pero' mi piacerebbe sfruttare maggiormente l'sql . Ho buttato giu' una struttura per un database cosi' composto :
    ------------------------
    ATTORI

    IDattori | nomeattori | dataattori | nazione | bio
    ------------------------
    ------------------------
    trailer

    IDtrailer | IDfilm| IDattori | IDcodec | nomefile | thumb | url1 | datavideo | size + altri
    ------------------------
    ------------------------
    film

    IDfilm | IDattori | paese | titolo | regista | anno | descrizione | commenti | voto | locandina
    ------------------------


    Per prima cosa mi piacerebbe sapere se la struttura è corretta a livello logico , oppure ho fatto degli errori concettuali .
    Poi mi piacerebbe capire come comporre queries che mi permettano di sfruttare la relazione fra le 3 tabelle e estrarre dati con php .
    Ad esempio se volessi estrarre tutti i dati dalle 3 tabelle e mettere come condizione il nome dell'attore , ad esempio Tom Cruise .. come posso fare ? Ho guardato un po' in giro .. devo usare le join , oppure no , vista la relazione fra le tabelle ?
    Un grazie a chiunque voglia darmi una mano
    A presto !!
    Cisi

    PS : ho omesso dei campi in ognuna delle 3 tabelle , altrimenti 'andavo largo' .
    non so

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    152
    Dimenticavo .. il discorso sulle query e sull'estrazione dei dati sono ancora validi solo se la struttura del db è concettualmente corretta .
    Thanx ancora .
    A presto .
    non so

  3. #3
    c'è ridondanza degli attori innanzitutto.. inutile avere l'id degli attori sia nella tabella film che in quella trailer...

    in secondo luogo.. idattori che campo sarebbe? una lista di attori? non è corretto...

    devi avere una tabella di relazione.. fatta così:

    interpreti
    idfilm | idattore

    in cui metterai una riga per ogni attore che partecipa ad un film
    quindi puoi eliminare idattori da film e da trailer e usare l'id del film per ottenere la lista degli attori


  4. #4
    La struttura del database, da come mi sembra di interpretarla, non è corretta...o meglio non è del tutto corretta. Nulla ti vieta di usarlo così, però meglio fare le cose per bene:

    la tabella attori va bene

    la tabella film ha un problema: non può gestire l'assegnamento di più attori ad un singolo film a meno di creare moltissime informazioni ridondanti. Ti faccio un esempio

    tu hai un film

    id 1
    paese USA
    titolo la guerra dei mondi
    regista spielberg
    ecc ecc

    e poi hai due attori

    tom cruise con id 1
    pippo con id 2

    Se entrambi hanno participato al film 1 allora tu avrai nella tabella film due righe quasi identiche:

    idfilm idattore paese titolo regista
    1 1 ... ... ...
    1 2 ... ... ...

    come vedi le info paese titolo e regista sono inutilmente duplicate.

    Allo stesso modo non capisco perchè nella tabella trailer c'è il riferimento agli attori.

    Inoltre nella tabella film c'è un attributo "commenti". Se lo gestisci come attributo sarà un bel macello ottenere i diversi commenti

    Una struttura più corretta è questa:

    ATTORI(id,nome,data,nazione,bio)
    FILM(id,paese,titolo,regista,anno,ecc....)
    RUOLI_FILM(id_film,id_attore,ruolo)
    COMMENTI(id_film,commento)

    Nella tabella trailer toglierei solo il riferimento agli attori che mi sembra inutile.

    Questo intanto per il db, sui join ci vuole un altro post e ora vado a cena

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    152

    Grazie

    Grazie a tutti per la spiegaione .
    Quindi a livello di logica ho sbagliato .. grazie .
    Vorrei pero' specificare una cosa ..
    il campo "commenti" contiene un mio commento sul film , non voglio la partecipazione degli utenti , quindi non vedo la necessità di inserire una nuova tabella 'commenti' .. sbaglio ?
    Poi , IDattori l'avevo inserito nella tabella trailer perchè pensavo di inserire diversi trailer dello stesso film , magari uno per attore , quindi nella futura pagina di dettaglio dell'attore in questione permettere il download del trailer relativo solo a lui .
    In effetti , il problema dell'inserimento di 2 attori nello stesso film rimane .. per questo dovro' creare la tabella
    interpreti
    IDfilm | IDattori

    ... giusto ?
    Grazie a tutti per l'eventuale aiuto e scusate il ritardo con il quele rispondo , ma son stato fuori !!
    Ciaooo !!!
    non so

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.