Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    27

    database per utenti con privilegi diversi

    Salve a tutti, sto studiando i database e il php quindi sono proprio agli inizi, dovrei realizzare un sistema di login per utenti con privilegi diversi, vi spiego come ho pensato di realizzarlo:

    ho creato un database di nome scuola, e queste tabelle:
    preside: id_user,username,passsord,email,nome,cognome,livel lo,ecc......
    professore:id_user,username,passsord,email,nome,co gnome,livello,materia,sezione,ore_lavorative,ecc.. ..
    alunno: id_user,username,passsord,email,nome,cognome,livel lo,sezione,classe,ecc.....

    come potete vedere ho creato una tabella diversa per ogni tipo di user, le tabelle hanno campi uguali come id_user,username,password ma anche campi diversi, per questo ho usato tabelle diverse e non una sola tabella per tutti gli utenti.

    Il livello indica il tipo di conto che si sta loggando nel sistema, preside livello 0, professore livello 1, alunno livello 2 ecc... mi serve mettere il livello nella sessione per usi futuri.

    Quindi quando un utente fa il login nel sistema in base al suo livello sarà diretto ad una pagina dove poter vedere e/o modificare informazioni.

    ora ho due domande:
    1. per il mio scopo (sistema di login con utenti con privilegi diversi) è corretto il modo in cui ho creato il database? Oppure si potrebbe creare in un modo migliore?

    2. ho un problema con alcune query, mi spiego, ad esempio quando l'utente si logga ed inserisce user e password io devo scorrere i campi user e password di tutte le tabelle per verificare l'identità dell'utente e prendere alcuni dei suoi dati da aggiungegere ad una sessione.
    la prima query che mi è venuta in mente è questa:

    select * from preside,professore,alunno
    where
    preside.username='user_da_verificare' and password=pwd_da_verificare or professore.username='user_da_verificare' and password=pwd_da_verificare or alunno.username='user_da_verificare' and password=pwd_da_verificare

    user_da_verificare e pwd_da_verificare li prendo in input da un form html.

    la query non funziona, non hottengo errori, ma ritorna sempre come risultato una tabella vuota!
    Ovviamente ho riempito le tabelle con diversi dati per poter fare le prove.

    Consigli? pareri?aiuti?



    Grazie mille

  2. #2
    Per carità... sei perdonabile solo perché sei agli inizi.
    Il database fatto così non va bene, ci sono troppi campi uguali, è un po' ingestibile l'id_user che se lo volessi fare globale in fase di inserimento dovresti prima cercare in tutte le tabelle per sapere quale id assegnare al nuovo utente.
    Poi così com'è, un professore può insegnare una sola materia in una sola sezione, ma nella realtà non è quasi mai così, e come la mettiamo? Mica duplichi la riga del professore con tutte le informazioni per potergli assegnare un'altra sezione.
    No, la tabella degli utenti dovrebbe essere unica con il "livello" che sta ad indicare il tipo di utente. Se poi per alcuni utenti ci sono campi in più, crei un'altra tabella con quelle informazioni aggiuntive e la chiave esterna per referenziare la giusta riga nella tabella degli utenti.
    La query potrebbe non funzionare anche perché non hai messo parentesi che dividano bene le varie condizioni OR, ma comunque devi riprogettare il database e scrivere una query più trattabile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    27
    ok grazie mille dei consigli, praticamente dovrei realizzare una cosa del genere:
    tabella login: id_login, username,password,key_livello
    tabella utenti: id_utenti,email,nome,cognome,indirizzo,città,,id_l ogin,key_livello
    tabella caratterstiche_preside: campi che hanno solo i presidi, id_login,key_livello,id_utenti
    tabella caratteristiche_professore: campi che hanno solo i professori, id_login,key_livello,id_utenti
    tabella caratterische_alunno: campi specifici degli alunni, id_login,key_livello,id_utenti

    praticamente cosi ho una sola tabella per il login che mi dice anche il livello e tutte le tabelle specifiche per ogni tipo di utente separate

    intendevi questo o mi sbaglio?

  4. #4
    Ma per niente: intanto non ha senso avere due tabelle separate "login" e "utenti" ma deve essere un'unica tabella; per il resto mi sembra che replichi sulle tabelle delle singole tipologie di utente anche i dati già presenti nella tabella base, quando basta un riferimento (diciamo "id_utenti") alla tabella base.
    Devi poi scremare ancora per capire se effettivamente un preside ha molte cose diverse da un professore o se si tratta di uno o due campi diversi, nel qual caso converrebbe tenerli assieme lasciando vuoti i campi non valorizzabili per gli insegnanti in quanto specifici del preside.

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.