Lo scopo di questa tabella è quello di descrivere tutte le tabelle di dati e memorizzare le informazioni necessarie per la costruzione delle interfacce, i form, per la gestione dei dati.
Vado ad analizzare i campi creati:
- il secondo campo
tabella
(VARCHAR(20)
) dove memorizzeremo il nome della tabella di appartenenza del campo, nel nostro caso i valori saranno “news” o “autori” - Il terzo campo sarà il
nome
del campo (VARCHAR(20)
), quindi per la tabella “news” avremoid
,titolo
,testo
e così via - Quarto campo
label
(VARCHAR(50)
) per definire l’etichetta del campo nel form, dato che il nome del campo non può essere utilizzato per convenzione. Per esempio nel nostro caso potremmo avere “data_pubblicazione” e label “Data pubblicazione”. - Il quinto campo sarà un
ENUM
con valori ‘0’ o ‘1’: lo chiameremochiave
e servirà per definire la chiave primaria. - Il sesto campo,
tipo_input
, sarà unENUM
contenente tutte le possibili opzioni di inputtext
,hidden
,password
,search
,email
,number
,date
,checkbox
,checkboxlist
,radiolist
,select
etextarea
). Potremmo averetext
per il titolo della news e unatextarea
per il testo, un hidden per l’id ecc. - Il campo successivo sarà un
ENUM
e servirà per definire se un campo è obbligatorio o meno ed effettuare i relativi controlli server-side, ovviamente questa opzione può essere sfruttata anche per creare controlli client-side. Simile la funzione del campocontrollo
che sarà sempre funzionale ai controlli server-side e potremo scegliere fra le opzionistring
oint
. - Abbiamo ora un terzetto di campi che serviranno per la creazione delle SELECT e quindi per la gestione delle relazioni uno a molti: se il controllo sarà quindi una
SELECT
dovremo indicare da quale tabella estrarre i dati, quale campo utilizzare per il valore della option HTML e quale nel testo visibile. Si tratta quindi di treVARCHAR
:origine_tabella
,origine_id
,origine_testo
. - I successivi tre campi hanno uno scopo simile ma questa volta declinato sulle tabelle di relazione molti a molti (il tipo di campo normalmente associato sarà una
checkboxlist
):rel_tabella
,rel_id1
,rel_id2
, tuttiVARCHAR
. - L’ultimo campo,
ordine
, e sarà unINT
, o undecimal(10,3)
, e servirà per decidere l’ordine dei campi nei form di inserimento e modifica.
Adeso devo popolare la tabella:
Ora nella tabella struttura
ci sono tutte le informazioni e le meta-informazioni per gestire le tabelle “news” e “autori”: eseguendo una SELECT
saremo in grado di costruire i form e le liste per la gestione dei dati.