Database per raccolta presenze

martedì 15 settembre 2009 - 22.26

miomiomio Profilo | Junior Member

ciao a tutti,
sto cercando di creare un database per poter raccogliere le presenze degli alunni a scuola.

Solo che non riesco a partire.

Dato che poi lo dovrò interfacciare al sito della scuola vorrei sapere secondo voi qual è il modo più conveniente per progettarlo.

devo fare una tabella per classe? per alunno? Per giorno? qual è il modo più conveniente e meno dispendioso in termini di risorse?

ci sono 25 alunni per classe circa e 5 classi
grazie

speedx Profilo | Junior Member

Forse prima di iniziare ti converebbe leggere qualcosa sulla teoria dei database...
Dopo di che devi scegleire il DBMS ovvero quale database usare, visto che devi usarlo per un applicazione via web (anche se i dati sono pochi) puoi usare sql express 2008, liberamente scaricabile.
Non devi fare una tabella per classe, ma una tabella che contenga tutte le classi...
Le tabelle sono
- Classi
- Alunni
- Presenze

Le tabelle saranno così create:
Classi:
ID_Classe,
NomeClasse,
Alunni:
ID_Alunno,
CognomeAlunno,
NomeAlunno,
ID_Classe -> che si collega con lo stesso campo nella tabella Classi (Forenkey)
Presenze
ID_Alunno, -> che si collega con lo stesso campo nella tabella Alunni (Forenkey)
DataPresenza






//// Marcello C.

miomiomio Profilo | Junior Member

intanto grazie per la risposta.

ho dimenticato di dire che devo usare access perche il sito supporta solo access, per mysql dovrebbero pagare qualcosa in più per l'hosting

ma i campi li collego con le relazioni?

l'inserimento da web potrò farlo con questa struttura?

speedx Profilo | Junior Member

OK, puoi realizzarlo anche con Access allo stesso modo.
SI, i campi che ti ho indicato li leghi con le relazioni.
Certo che l'inserimento da web puoi farlo con questa struttura:
Io farei selezionare la classe e la data di rilevazione della presenza, dopo di che genererei l'elenco degli alunni appartenenti a quella classe mettendo a lato una checkbox. solo quelli "checheccati" vengono inseriti all'intgerno della tabella di rilevazione presenze.
L'unico accorgimenti è che devi sempre portarti gli ID_xxxxx
//// Marcello C.

miomiomio Profilo | Junior Member

perfect!
la struttura mi sembra davvero flessibile e il più leggera possibile
anche se vedo inserire ogni giorno la stessa data per ogni alunno (o devo creare un altra tabella con i giorni, id_giorni)?
l'ho anche interfacciata ad una pagina asp.
grazie!!!


Ho fatto in questo modo.

1 pagina di login con matricola e password
la matricola viene inserita in una variabile sessione.
e si viene reindirizzato ad una pagina dove c'è per il momento un grezzo elenco delle date relative a quella matricola e 0 se presente 1 se assente. (poi abbellirò)
per far questo ho creato una query con questo codice
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

in particolare per selezionare solo quell'utente utilizzo la sessione del login che contiene la matricola.

La mia domanda è la seguente è un metodo sicuro? c'è modo di vedere le presenze di altri utenti? devo prendere qualche precauzione?

grazie dell'aiutooooooo

speedx Profilo | Junior Member

Personalmente non creerei una nuova dimensione data... visto che il db è banale nella sua struttura, non complicherei le cose.
Il metodo di accesso usato è sicuro, la variabile di sessione muore quando chiudi la sessione quindi non dovresti avere problemi.
Non c'è modo di vedere i dati di altri se fai una query che legge solo i dati di quell'utente.
E mi pare che la tua estragga solo i dati di un utente.

:-)


//// Marcello C.

miomiomio Profilo | Junior Member

esatto solo di quell'utente.

ma non c'è modo di iniettare nella sessione la matricola di un altro?

non credo ci siano hacker che vogliono spiare le assenze degli altri!! ma non si sa mai!!!

speedx Profilo | Junior Member

Non sono un espertone del web pur avendoci lavorato, ma tenendo conto che i dati non mi sembrano così sensibili per un attacco, direi che la tua soluzione è ok.
Mi pare si possano anche criptare i dati di sessione ecc...
Ti consiglio di dare un'occhiata in giro...
Ciao

//// Marcello C.

miomiomio Profilo | Junior Member

ok
grazie davvero per tutto l'aiuto!
ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5