Sto creando un sistema per un sistema di gestione scolastica e viene fornito lo schema del database allegato.Normalizzazione del database per il sistema di gestione della scuola
Database diagram http://oi40.tinypic.com/15x21ig.jpg
seguito è come funziona il sistema:
- Una scuola ha molti studenti e insegnanti. Ha anche molti corsi (materie) insegnate. A un livello può essere assegnato più corsi. Questi corsi a loro volta saranno assegnati agli studenti in quel particolare grado.
- I livelli degli studenti sono classificati in gradi e sezioni. Uno studente può essere di grado 5, ma se gli studenti di grado 5 hanno un numero enorme, sono divisi in sezioni. es .: Sezione 5 di Grado A, Sezione 5 di B. Grado
- Gli studenti sono collocati in aule uniche. Un'aula sarà unica in tutto. La classe A della classe 5 di grado 5 dell'anno 2010 sarà diversa dalla classe della sezione 5 di grado 5 dell'anno 2011.
- Gli studenti vengono assegnati ai genitori. Un genitore può avere più di uno studente nella scuola.
- Una o più classi possono essere assegnate a un insegnante.
- La frequenza degli studenti viene assunta dal proprio insegnante su base giornaliera
- Ci saranno molti tipi di esami. I risultati dell'esame sono archiviati per ogni materia (corso).
Sono un principiante nella normalizzazione del database e sarei lieto se qualcuno potesse darmi qualche suggerimento se il database sembra a posto o no.
EDIT:
Inoltre, ci sarà solo un punto di accesso. Nel caso precedente, durante l'accesso, un utente dovrà selezionare il tipo di utente da un elenco a discesa. Quella selezione a discesa verrà utilizzata per eseguire query sulla rispettiva tabella per accedere al sistema. Un'altra alternativa consiste nell'utilizzare una tabella comune user
, che memorizzerà lo user_id, email, password, last_login_date, last_login_ip
ma archivierà altri dettagli nelle rispettive tabelle, ad esempio student, parent, teacher
. Quindi, qual è il modo preferito/corretto per implementarlo?
Ehi, gli studenti della tua scuola possono avere un solo genitore? Piuttosto strano :) Inoltre, perché in classe viene assegnato un solo insegnante? Non dovrebbe essere assegnato al corso? – Tadeck
@Tadeck La tabella padre memorizza i dettagli di un genitore autorizzato, che sarà in grado di visualizzare e controllare i record degli studenti. Non indica tutti i dettagli principali dello studente. Ad esempio: a un padre potrebbe essere assegnato il nome utente/password genitore per controllare il suo studente. La madre potrebbe anche usarlo, ma generalmente solo uno sarebbe in grado di farlo.Per quanto riguarda l'aula, a un'aula sarà assegnato UN solo insegnante di classe che riempie la frequenza/i voti degli studenti in quella particolare classe. Il corso si riferisce a Materie di uno studente. I voti saranno assegnati alle materie e le classi saranno assegnate ai voti. – WebNovice
@Damchey essere preparati che cose come la regola 1-genitore autorizzato potrebbe cambiare, e la tua app sarà tenuta a gestirlo in qualche modo. Potrebbe essere una buona idea progettare questo in modo che uno studente possa avere un numero qualsiasi di tutori autorizzati - è quindi possibile limitare il numero a 1 su livello UI –