asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 13231
ASPCode.it - Store
<< lezione precedente lezione successiva >>

Come realizzare un Forum di Discussione - Costruzione del Database

La scelta del particolare database da utilizzare riguarda solamente un aspetto personale e strettamente "pratico", le differenze tra i database riguardano ormai solo le prestazioni e alcuni aspetti particolari che non ci interessano per lo sviluppo del forum.

Nella elaborazione del forum, per motivi di praticità userò come riferimento un database Access™; nel passaggio ad un altro database, la struttura delle tabelle cambierà solamente per i nomi dei tipi di dato e per alcune sfumature in particolari istruzioni SQL (per esempio le date); per il resto non cambierà assolutamente niente.

Cominciamo ad analizzare la struttura del forum:

Struttura del Forum
Figura 2.1: Struttura del Forum.

Possiamo vedere il forum come una serie di radici (i vari topic) a cui si collegheranno degli argomenti e ogni argomento avrà a sua volta una discussione composta da vari messaggi. Quando un utente vorrà inserire un messaggio dovrà quindi per prima cosa decidere in qualche topic inserirlo e, dopo aver inserito il nome dell'argomento, scriverà anche il testo del primo messaggio che darà il via alla discussione.

Per realizzare il nostro forum avremo quindi bisogno di tre tabelle, una per ogni elemento appena descritto; analizziamo ora i campi da inserire in ogni tabella:

Tabella TOPIC
  • COD_TOP - considerato che in futuro potremo aver bisogno di cambiare il nome di un topic, come chiave primaria della tabella (ricordiamo che la chiave primaria è un campo (o più di uno) che permette di identificare univocamente una riga della tabella) utilizziamo un dato di tipo contatore (un numerico autoincrementante).
  • TOPIC - campo di testo che conterrà il nome del topic.
  • DESCRIZIONE - campo di testo che conterrà la descrizione del topic.
Tabella Topic
Figura 2.2: Tabella Topic.

Tabella ARGOMENTI
  • COD_ARG - anche qui è meglio usare un campo contatore come chiave primaria visto che il nome di un argomento può essere ripetuto più volte e non può essere quindi una chiave primaria.
  • ARGOMENTO - campo di testo che contiene il titolo dell'argomento.
  • COD_TOP - questa non è una chiave primaria, ma una chiave esterna che permette di collegare ogni argomento al proprio topic; sarà un campo numerico in quanto la chiave primaria della tabella topic è un numero.
Tabella Argomenti
Figura 2.3: Tabella Argomenti.

Tabella MESSAGGI
  • COD_MES - contarore, vale lo stesso discorso di prima.
  • MESSAGGIO - questo campo conterrà il messaggio vero e proprio; non useremo un campo testo perchè questo è limitato a 254 caratteri ma utilizzeremo un campo memo (nell'SQL standard si indica VARCHAR).
  • COD_ARG - chiave esterna che collega ogni messaggio al proprio argomento; da notare che non dobbiamo inserire anche un collegamento al topic perchè questo collegamento è già implicito nella tabella precendente.
  • DATA - un campo date in cui inseriremo l'orario in cui il messaggio viene inserito.
  • AUTORE - un campo di testo che conterrà l'autore del messaggio.
Tabella Messaggi
Figura 2.4: Tabella Messaggi.

La dimensione dei campi e il fatto che siano accettati valori nulli (lunghezza zero in Access) sono fattori personali, come indicazione ho lasciato le dimensioni standard che ci propina access (50 caratteri per i testi e intero lungo per i numerici) e non ho consentito l'inserimento di un valore nullo.

Ora creeremo le relazioni tra le varie tabelle e applicheremo l'integrità referenziale in modo che non sia possibile, per esempio, collegare un argomento a un topic inesistente. Anche questa è un scelta personale; le pagine ASP che costruiremo non permetteranno di inserire dati senza senso (inconsistenti) e applicando l'integrità referenziale si incarica il database di spendere risorse per controllare gli inserimenti e le modifiche del forum. Nel caso non vogliate farlo non serve collegare le tabelle tramite Access; i semplici collegamenti non portano modifiche al database.

Relazioni
Figura 2.5: Collegamenti fra le Tabelle.

Abbiamo finito così di creare la struttura base del nostro forum; di man i mano che verranno aggiunte nuove funzionalità dovremmo aggiungere dei campi alle nostre tabelle o aggiungerne delle altre.

Nella prossima puntata creeremo la pagina principale del forum, che ci permetterà di visualizzare queste tabelle.

<< lezione precedente lezione successiva >>


Utenti connessi: 13231