Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    consiglio come impostare il db

    Ciao a tutti,

    sto realizzando un pannello di controllo lato admin da dove si può:

    1) aggiungere nuovi corsi o di selezionare tramite select un corso inserito in precedenza (in ogni corso però si insegneranno materie diverse)
    2) aggiungere nuovi allievi o di selezionare tramite select un allievo inserito in precedenza
    3) dare i voti ad ogni corso e ad ogni materia appartenente a quel corso selezionando tramite select il nome dell'allievo

    Il mio dubbio è come imposto il db?

    creo 1 tabella?
    1) corsi A, B, C (con all'interno i campi delle relative materie) + allievi (con all'interno l'anagrafica dell'allievo, es: nome, cognome, tel, via, ecc...)

    creo 2 tabelle?
    1) corsi A, B, C (con all'interno i campi delle relative materie)
    2) allievi (con all'interno l'anagrafica dell'allievo, es: nome, cognome, tel, via, ecc...)

    creo più tabelle?
    1) corso A (con all'interno i campi delle relative materie)
    2) corso B (con all'interno i campi delle relative materie)
    3) corso C (con all'interno i campi delle relative materie)
    4) allievi (con all'interno l'anagrafica dell'allievo, es: nome, cognome, tel, via, ecc...)

    cosa mi conviene fare? Considerando che dovrò anche fare un motore di ricerca.

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    a prima vista ti suggerirei 5 tabelle

    corsi
    materie
    corsi_materie
    allievi
    voti_allievi_materie
    Errare humanum est, perseverare ovest

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da carlo2002
    a prima vista ti suggerirei 5 tabelle

    corsi
    materie
    corsi_materie
    allievi
    voti_allievi_materie
    però così faccio dei doppioni:
    corsi e corsi_materie non sono la stessa cosa?
    Invece per gli allievi mi consigli di separare l'anagrafica dai voti?

    Però i voti sono collegati alle materie!

    Per quanto riguarda i corsi allora mi consigli di metterli tutti insieme?

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    non crei dei doppioni, anzi li eviti

    i corsi sono formati da più materie e le materie si possono associare a più corsi. Questa è una relazione molti-a-molti, es:


    tabella 'corsi':
    id_corso
    nome_corso
    data_inizio
    località
    ...


    tabella 'materie':
    id_materia
    nome_materia
    ...


    tabella 'corsi_materie':
    id_corsi_materie
    id_corso
    id_materia


    altrettanto dicasi per allievi, voti e materie che pensandoci la tabella per i voti si potrebbe chiamare per l'appunto solo 'voti':

    tabella 'allievi':
    id_allievo
    nome
    cognome
    date_nascita
    recapito
    ...

    tabella 'voti':
    id_voto
    voto
    id_allievo
    id_materia



    in questo modo hai tutto bello ordinato
    Errare humanum est, perseverare ovest

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ok, ora incomincio a capire. Mi rimane solo da chiarire

    tabella 'corsi_materie':
    id_corsi_materie
    id_corso
    id_materia

    IN UNA TABELLA SI POSSONO METTERE PIU' ID? Perchè la cosa mi interessa molto saperla visto che devo anche poter mettere il campo numero diploma del corso e dovrà essere un numero progressivo e che comincia da 1 in ogni corso (corso A = n. attestato 1, 2, 3, ecc.. | corso B = n. attestato 1, 2, 3, ecc.. | corso C = n. attestato 1, 2, 3, ecc..)

  6. #6
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    i primi id che ho messo sono dei numeri che fanno da chiave primaria che di solito si fanno auto incrementali per rendere univoco ogni record.

    gli altri id sono quelli delle chiavi primarie delle altre tabelle, quando dovrai assegnare un voto, nel relativo record inserirai l'id dell'utente e l'id della materia.

    invece mi sfugge il discorso sul numero dei diplomi o attestati
    Errare humanum est, perseverare ovest

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Ecco come mi dovrebbe uscire la scheda:

    Nome: Angelo (questa è una select che prende il nome dell'iscritto dal db)
    Cognome: Sonnino (questa è una select che prende il cognome dell'iscritto dal db)
    Corso: base di disegno (questa è una select che prende il nome del corso dal db)
    Luogo corso: Roma
    Numero attestato: 227 (questo è un numero progressivo che deve uscire da solo quando si riempie una scheda nuova) Ogni corso ha una sua numerazione progressiva indipendente.
    Giorno 1 di frequenza: 25-04-2006 (questa è una select)
    Giorno 2 di frequenza: 26-04-2006 (questa è una select)
    disegno dal vero voto: 7 (questa è una select che va da 1 a 10)
    pittura ad olio voto: 9 (questa è una select che va da 1 a 10)
    media voti: 8

  8. #8
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    non serve che fai una select per ogni cosa, se devi avere più dati di un allievo basta una sola select tramite la quale estrai i campi che ti servono.

    anche se lavori su più tabelle in relazione tra di loro può bastare una sola select usando JOIN

    pensandoci bene si dovrebbe aggiungere un'ulteriore tabella:

    tabella 'allievi_corsi':
    id_allievi_corsi (che potrebbe essere il numero dell'attestato)
    id_allievo
    id_corso

    questo permette di associare gli allievi ai corsi e quindi generare anche una votazione per ogni corso. in questo caso alla tabella voti dovresti aggiungere il campo 'id_allievi_corsi'
    Errare humanum est, perseverare ovest

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Mamma mia comè difficile!
    Dove mi posso andare a studiare come far interagire più tabelle fra di loro? Conosci qualche link dove lo insegna?

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    è costruita in modo corretto questa tabella?

    tabella 'corsi_materie':
    id_corsi_materie (TIPO int 4 - NULL no - EXTRA auto_increment - AZIONE chiave primaria)
    id_corsi (TIPO varchar 4 - NULL si) AZIONE indice? Che faccio lo metto come indice?
    id_materie (TIPO varchar 4 - NULL si) AZIONE indice? Che faccio lo metto come indice?

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.