Il database di WordPress

Al database di WordPress bastano 11 tabelle per far funzionare il CMS, almeno nella sua installazione base.

Per funzionare WordPress ha bisogno di una serie di file e di un po’ di dati. I file si occupano della logica di funzionamento e della costruzione estetica del sito, molti file sono scritti in php (che è il linguaggio di programmazione usato da WordPress) ma per far funzionare tutto perbene servono anche altri tipi di file: immagini, fogli di stile, parti in html e javascript.
Tutti i dati, in sostanza tutti i contenuti del sito, vengono invece salvati all’interno di un database, per la precisione all’interno di una serie di tabelle. Per questo motivo per avere una backup completo di un sito è necessario avere una copia di tutti i file e un export del database.

Per una volta cominciamo dalla fine e andiamo a vedere queste tabelle, almeno quelle presenti anche nell’installazione minima di WordPress.

Le 11 tabelle di base

Per quanto sorprendente possa sembrare l’installazione base di WordPress crea soltanto 11 tabelle, tutte perfettamente descritte nella documentazione del software.

Il database di WordPress 3.0

Lo schema qui sopra si riferisce al database dalla versione 3 in poi, vediamolo nel dettaglio

wp_options

Contiene la maggior parte dei settaggi del sito (e di molti plugin), solo le informazioni necessarie per la connessione al database devono essere obbligatoriamente salvate in un file.

wp_posts

In questa tabella c’è la maggior parte della magia di un sito, si occupa di organizzare e salvare il contenuto degli articoli e delle pagina così come di tutti gli altri tipi di contenuto che può essere creato in wordpress.

wp_postmeta

Contiene i dati opzionali dei post, in una installazione molto semplice è una tabella quasi vuota.

wp_comments

La tabella contiene i commenti aggiunti agli articoli, alle pagine e agli eventuali altri contenuti. Oltre al commento stesso contiene informazioni sull’autore, il suo indirizzo email, la data in cui è stato inviato e ovviamente anche il riferimento al contenuto associato.

wp_commentmeta

La tabella contiene informazioni supplementari relative ai commenti, nessun dato personale e niente di particolarmente sofisticato, si tratta sostanzialmente di dati che permettono di semplificare la vita… al software stesso. E’ importante non dimenticare che WordPress nasce come software per blogger, è logico che articoli e commenti siano al centro della scena (e del database).

wp_links

La tabella links è ancora presente nelle versioni attuali di WordPress soprattutto per ragioni di retro compatibilità, questo tipo di contenuto è sparito alcune versioni fa.

wp_terms

Questa tabella contiene i tag e le categorie usati nei post.

wp_terms_relationship

Si occupa di gestire la relazione molti a molti tra i post e le categorie e i tag associati. La tabella è collegata sia alla wp_posts sia alla wp_terms attraverso la tabella wp_term_taxonomy.

wp_term_taxonomy

Questa tabella serve a gestire il tipo di tassonomia associata con i post, è collegata alla wp_terms e alla wp_term_relationships e contiene le relazioni con le categorie, i tag eccetera.

wp_users

Questa tabella contiene tutti i dati degli utenti iscritti al sito, dagli amministratori ai lettori registrati. Le tabelle contengono – tra le altre cose – il nome utente, l’indirizzo di posta elettronica e la password, ovviamente cifrata.

wp_usermeta

Come tutte le tabelle “meta” di WordPress contiene informazioni supplementari, in questo caso la tabelle contiene le informazioni aggiuntive degli iscritti al sito.

Una tabella

Potete immaginare una tabella come un foglio excel, la particolarità delle tabelle di un database è quella di essere particolarmente efficienti: non hanno limiti alla quantità di informazioni che possono contenere e sono molto veloci da usare, soprattutto quando si legge o si cerca un’informazione.

Il database di WordPress

Tutti i CMS esistenti usano un linguaggio di programmazione e un database per funzionare, WordPress non costituisce un’eccezione. Quando un visitatore atterra sulla home page del vostro sito viene richiamata una pagina, la index.php, che si occupa di fare una serie di cose tra cui, ad esempio, interrogare il database per chiedere “mi passi gli ultimi tre articoli pubblicati?”.

In altre parole WordPress non accede direttamente ai contenuti ma lo fa interrogando il database, un software specializzato nella gestione dei dati e di tutti i mal di testa che ne possono conseguire. La maggior parte dei CMS usano database di tipo SQL (Structured Query Language), questi sono specializzati nella gestione delle relazioni tra i dati e sono quindi particolarmente adatti per rispondere alle tipiche richieste di un CMS, come abbiamo visto sopra infatti per completare la pubblicazione di una singola pagine è necessario interrogare più tabelle che sono in relazione tra loro.

Originariamente WordPress usava solo il database MySQL, oggi può usare anche MariaDB, senza sostanziali differenze tra l’uno e l’altro. Non annoieremo i lettori del sito con una approfondita discussione sulle differenze tra i due software, sarebbe una discussione troppo nerd e troppo poco adatta all’articolo di agosto, diciamo che l’uno o l’altro sostanzialmente si equivalgono.

La tipica installazione di WordPress

In una tipica installazione di WordPress il database è molto più “ricco”, la maggior parte dei plugin aggiungono una o più tabelle per funzionare quindi è perfettamente normale avere un database con decine di tabelle. Questo sito ad esempio usa 145 tabelle e non è particolarmente sofisticato.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna in alto