Avanzando con SPIP [3]

La base de datos de spip

, por dani

Como sabemos SPIP usa una base de datos MySQL para guardar los distintos artículos, secciones, autores, etc. La base de datos tiene una serie de tablas con nombres del tipo spip_articles, spip_auteurs, etc.

Disponemos de información sobre algunos de los campos en los artículos de spip.net:

- La structure de la base de données
- Estructura de la base de datos

El artículo original (en francés) se encuentra desactualizado (y por tanto la traducción), no obstante y aunque no están todos los campos, en los anteriores artículos se explica para qué sirven los principales campos.

Además se puede ver un esquema general de la base de datos en:
- doc.spip.org (observa el fichero pdf).

Si tienes servidor propio, o bien aceso al servidor donde está alojada tu base de datos de spip, puedes consultarla usando sentencias de MySQL o mediante el programa PhpMyAdmin. Para más información mira los artículos: Instalando MySQL y PHPMyAdmin.
Si no recuerdas el nombre de tu base de datos, puedes obtenerlo (además de la contraseña) del fichero: ecrire/inc_connect.php.

Si NO tienes servidor propio o no puedes acceder mediante mysql a tu base de datos, aquí tienes la estructura de la base en una instalación de spip versión 1.91:

En primer lugar veamos las tablas disponibles:

mysql> show tables;

Tables_in_spip191
spip_ajax_fonc
spip_articles
spip_auteurs
spip_auteurs_articles
spip_auteurs_messages
spip_auteurs_rubriques
spip_breves
spip_caches
spip_documents
spip_documents_articles
spip_documents_breves
spip_documents_rubriques
spip_forum
spip_groupes_mots
spip_index
spip_index_dico
spip_messages
spip_meta
spip_mots
spip_mots_articles
spip_mots_breves
spip_mots_documents
spip_mots_forum
spip_mots_rubriques
spip_mots_syndic
spip_ortho_cache
spip_ortho_dico
spip_petitions
spip_recherches
spip_referers
spip_referers_articles
spip_rubriques
spip_signatures
spip_syndic
spip_syndic_articles
spip_test
spip_types_documents
spip_types_tables
spip_versions
spip_versions_fragments
spip_visites
spip_visites_articles

42 rows in set (0.00 sec)

Veamos ahora la estructura de algunas de las tablas:

mysql> describe spip_articles;

Field Type Null Key Default Extra
id_article bigint(21) PRI NULL auto_increment
surtitre text
titre text
soustitre text
id_rubrique bigint(21) MUL 0
descriptif text
chapo mediumtext
texte longblob
ps mediumtext
date datetime 0000-00-00 00:00:00
statut varchar(10) MUL 0
id_secteur bigint(21) MUL 0
maj timestamp(14) YES NULL
export varchar(10) YES oui
date_redac datetime 0000-00-00 00:00:00
visites int(11) 0
referers int(11) 0
popularite double 0
accepter_forum char(3)
date_modif datetime MUL 0000-00-00 00:00:00
lang varchar(10) MUL
langue_choisie char(3) YES non
id_trad bigint(21) MUL 0
extra longblob YES NULL
idx enum(’’,’1’,’non’,’oui’,’idx’) MUL
id_version int(10) unsigned 0
nom_site tinytext
url_site varchar(255) MUL
url_propre varchar(255) MUL

29 rows in set (0.00 sec)

mysql> describe spip_auteurs;

Field Type Null Key Default Extra
id_auteur bigint(21) PRI NULL auto_increment
nom text
bio text
email tinytext
nom_site tinytext
url_site text
login varchar(255) binary MUL
pass tinytext
low_sec tinytext
statut varchar(255) MUL
maj timestamp(14) YES NULL
pgp blob
htpass tinyblob
en_ligne datetime MUL 0000-00-00 00:00:00
imessage char(3)
messagerie char(3)
alea_actuel tinytext
alea_futur tinytext
prefs tinytext
cookie_oubli tinytext
source varchar(10) spip
lang varchar(10) MUL
idx enum(’’,’1’,’non’,’oui’,’idx’) MUL
url_propre varchar(255) MUL
extra longblob YES NULL

25 rows in set (0.00 sec)

mysql> describe spip_breves;

Field Type Null Key Default Extra
id_breve bigint(21) PRI NULL auto_increment
date_heure datetime 0000-00-00 00:00:00
titre text
texte longblob
lien_titre text
lien_url text
statut varchar(6)
id_rubrique bigint(21) MUL 0
lang varchar(10)
langue_choisie char(3) YES non
maj timestamp(14) YES NULL
idx enum(’’,’1’,’non’,’oui’,’idx’) MUL
extra longblob YES NULL
url_propre varchar(255) MUL

14 rows in set (0.00 sec)

mysql> describe spip_documents;

Field Type Null Key Default Extra
id_document bigint(21) PRI NULL auto_increment
id_vignette bigint(21) MUL 0
id_type bigint(21) MUL 0
titre text
date datetime 0000-00-00 00:00:00
descriptif text
fichier varchar(255)
taille int(11) 0
largeur int(11) 0
hauteur int(11) 0
mode enum(’vignette’,’document’) MUL vignette
distant char(3) YES non
idx enum(’’,’1’,’non’,’oui’,’idx’)
maj timestamp(14) YES NULL

14 rows in set (0.00 sec)

mysql> describe spip_forum;

Field Type Null Key Default Extra
id_forum bigint(21) PRI NULL auto_increment
id_parent bigint(21) MUL 0
id_thread bigint(21) 0
id_rubrique bigint(21) MUL 0
id_article bigint(21) MUL 0
id_breve bigint(21) MUL 0
date_heure datetime 0000-00-00 00:00:00
titre text
texte mediumtext
auteur text
email_auteur text
nom_site text
url_site text
statut varchar(8) MUL
idx enum(’’,’1’,’non’,’oui’,’idx’) MUL
ip varchar(16) YES NULL
maj timestamp(14) YES NULL
id_auteur bigint(20) 0
id_message bigint(21) MUL 0
id_syndic bigint(21) MUL 0

20 rows in set (0.00 sec)

mysql> describe spip_mots;

Field Type Null Key Default Extra
id_mot bigint(21) PRI NULL auto_increment
titre text
descriptif text
texte longblob
id_groupe bigint(21) 0
type text
extra longblob YES NULL
idx enum(’’,’1’,’non’,’oui’,’idx’) MUL
url_propre varchar(255) MUL
maj timestamp(14) YES NULL

10 rows in set (0.00 sec)

mysql> describe spip_rubriques;

Field Type Null Key Default Extra
id_rubrique bigint(21) PRI NULL auto_increment
id_parent bigint(21) MUL 0
titre text
descriptif text
texte longblob
id_secteur bigint(21) 0
maj timestamp(14) YES NULL
export varchar(10) YES oui
id_import bigint(20) YES 0
statut varchar(10)
date datetime 0000-00-00 00:00:00
lang varchar(10) MUL
langue_choisie char(3) YES non
idx enum(’’,’1’,’non’,’oui’,’idx’) MUL
extra longblob YES NULL
url_propre varchar(255) MUL
statut_tmp varchar(10)
date_tmp datetime 0000-00-00 00:00:00

18 rows in set (0.00 sec)

Existen algunas tablas que se usan como unión entre otras. Por ejemplo la tabla spip_auteurs_articles relaciona autores con artículos

mysql> describe spip_auteurs_articles;

Field Type Null Key Default Extra
id_auteur bigint(21) PRI 0
id_article bigint(21) PRI 0

2 rows in set (0.00 sec)