Link copiato negli appunti
Si analizzi con attenzione la struttura delle tre tabelle create:
Tabella "login":
- id_login: campo numerico intero della lunghezza di massimo 1 cifra ("INT( 1 )"); non può essere vuoto ("NOT NULL"), verrà incrementato automaticamente ad ogni inserimento di un nuovo record ("AUTO_INCREMENT") e verrà utilizzato nel database come chiave primaria della tabella ("PRIMARY KEY");
- username_login: campo alfanumerico della lunghezza di massimo 10 caratteri ("VARCHAR(10)"); non potrà essere vuoto e verrà utilizzato per contenere nome associato all'utente autorizzato ad accedere all'amministrazione;
- password_login: campo alfanumerico della lunghezza di massimo 40 caratteri; non potrà essere vuoto e conterrà la password per consentire l'accesso all'utente dotato dello username ad essa associato.
Campo | Tipo | Null | Extra |
---|---|---|---|
id_login | int(1) | No | auto_increment |
username_login | varchar(10) | No | |
password_login | varchar(40) | No |
Tabella "post":
- id_post: campo numerico intero della lunghezza di massimo 5 cifre; non può essere vuoto, verrà incrementato automaticamente ad ogni inserimento di un nuovo record e sarà utilizzato come chiave primaria della tabella;
- titolo_post: campo alfanumerico della lunghezza di massimo 255 caratteri; non potrà essere vuoto e conterrà il titolo associato ad ogni post;
- testo_post: campo testuale di lunghezza non definibile ("TEXT"); non potrà essere vuoto e conterrà il testo di ogni singolo post.
- autore_post: campo alfanumerico della lunghezza di massimo 30 caratteri; non potrà essere vuoto e conterrà i nomi degli autori dei post;
- data_post: campo destinato ad ospitare la data di pubblicazione dei post, per esso è stato scelto un tipo di dato utilizzato appositamente per le date, cioè "DATE", che registrerà l'informazione nel formato "aaaa - mm - gg" (anno/mese/giorno); non può essere vuoto.
Campo | Tipo | Null | Extra |
---|---|---|---|
id_post | int(5) | No | auto_increment |
titolo_post | varchar(255) | No | |
testo_post | text | No | |
autore_post | varchar(30) | No | |
data_post | date | No |
Tabella "commenti"
- id_commento: campo numerico intero della lunghezza di massimo 6 cifre; non può essere vuoto, verrà incrementato automaticamente ad ogni inserimento di un nuovo record e sarà utilizzato come chiave primaria della tabella;
- id_post: campo numerico intero della lunghezza di massimo 5 cifre; non può essere vuoto e sarà utilizzato per ospitare l'identificativo univoco del post a cui è riferito il commento memorizzato nel record;
- autore_commento: campo alfanumerico della lunghezza di massimo 30 caratteri; non potrà essere vuoto e conterrà i nomi degli autori dei commenti;
- testo_commento: campo testuale di lunghezza non definibile; non potrà essere vuoto e conterrà il testo di ogni singolo commento;
- data_commento: campo destinato ad ospitare la data di inserimento del commento, per esso è stato scelto il tipo di dato DATE; non può essere vuoto;
- approvato: si tratta di un campo a cui è associato un tipo di dato ENUM che consente soltanto l'inserimento di due valori definiti in fase di creazione del campo, nel caso dell'esempio proposto i valori possibili saranno '0' (da associare ai commenti non approvati o non ancora approvati in fase di moderazione dall'amministratore) e '1' (da associare ai commenti approvati).
Campo | Tipo | Null | Extra |
---|---|---|---|
id_commento | int(6) | No | auto_increment |
id_post | varchar(5) | No | |
autore_commento | varchar(30) | No | |
testo_commento | text | No | |
data_commento | date | No | |
approvato | enum('0', '1') | No |
Anche dal semplice elenco proposto saltano immediatamente all'occhio le diverse relazioni esistenti: i post sono per esempio in relazione tra loro se si considera un intervallo di date, i commenti sono in relazione con i post e anche per essi vale il discorso relativo alla data di inserimento e così via.
L'utilizzo di queste relazioni per lo sviluppo dell'applicazione destinata alla gestione di un blog sarà un argomento fondamentale per il resto di questa trattazione.