De structuur van de database

Dit artikel dient als referentie voor de structuur van de database en geeft niet de actuele en volledige structuur van de database weer!

De database van SPIP heeft een eenvoudige structuur. Bepaalde conventies werden toegepast die je in dit artikel terug zult vinden. Zo is bijvoorbeeld het merendeel van de objecten geïndexeerd door een geheel getal dat automatisch wordt verhoogd met een veldnaam van het type id_objectnaam die als primaire sleutelwaarde is gedeclareerd.

Redactionele inhoud

De rubrieken: spip_rubriques

-  Iedere rubriek wordt geïdentificeerd door een id_rubrique.

image 160 x 169


-  id_parent is de id_rubrique van de bovenliggende rubriek (en is nul wanneer het een hoofdrubriek betreft, die dus aan de root van de site ligt).
-  titre, descriptif, texte zijn de titel, omschrijving en tekst.
-  id_secteur is de id_rubrique van de hoofdrubriek waarin de rubriek zich bevindt. Het is dus de rubriek die zich het hoogst in de hiërarchie van de betreffende rubriek bevindt.
-  maj is een technisch gegeven dat automatisch door MySQL wordt aangepast en het tijdstip van de laatste aanpassing bevat.
-  export, id_import zijn gereserveerd voor toekomstige toepassingen.

De artikelen: spip_articles

-  Ieder artikel wordt geïdentificeerd door een id_article.

image 185 x 359


-  id_rubrique geeft aan tot welke rubriek het artikel behoort.
-  id_secteur is de hoofdrubriek van de bovenstaande (zie de uitleg in de vorige paragraaf).
-  titre, surtitre, soustitre, descriptif, chapo, texte, ps zijn de verschillende onderdelen van het artikel.
-  date is de publicatiedatum van het artikel (en wanneer het nog niet is gepubliceerd, is het de aanmaakdatum).
-  date_redac is een toekomstige publicatiedatum als deze wordt gebruikt, anders is ze «0000-00-00».
-  statut is de huidige status van het artikel: prepa (in redactie), prop (voorgesteld voor publicatie), publie (gepubliceerd), refuse (geweigerd), poubelle (in de prullenbak).
-  accepter_forum: geeft aan of het artikel een forum heeft (standaardwaarde: oui).
-  maj heeft dezelfde functie als bij de rubrieken.
-  export is gereserveerd voor toekomstig gebruik.
-  images bevat een lijst van de in het artikel gebruikte afbeeldingen in een speciaal formaat. De inhoud wordt gemaakt door spip_image.php.
-  visites en referers worden voor de statistieken van het artikel gebruikt. De eerste is het aantal keren dat het artikel in de publieke site werd geladen en de tweede bevat een hash van de verschillende referers, om het specifieke aantal te kennen?

De auteurs : spip_auteurs

-  Iedere auteur heeft zijn id_auteur.

image 150 x 226


-  nom, bio, nom_site, url_site, pgp zijn respectievelijk de naam, een biografie, de naam en URL van zijn website en zijn PGP-key.
-  email, login zijn het emailadres en de login-code.
-  pass is de MD5 hash van het wachtwoord.
-  htpass is de cryptische waarde van het wachtwoord (gegenereerd door crypt()) ten behoeve van .htpasswd.
-  statut is de status van de auteur: 0minirezo (beheerder), 1comite (redacteur), 5poubelle (in de prullenbak), 6forum (geabonneerd op forums, wanneer deze «op abonnement» werken).
-  maj heeft weer dezelfde betekenis als in andere tabellen.

De nieuwsberichten: spip_breves

-  Elk nieuwsbericht heeft zijn unieke id_breve.

image 161 x 168


-  id_rubrique is de rubriek (feitelijk de hoofdrubriek) waarin het is opgenomen.
-  titre, texte, lien_titre, lien_url zijn de title, de tekst en de naam en URL van een link die bij het nieuwsbericht werd vermeld.
-  date_heure is de datum (met tijdstip) van het nieuwsbericht.
-  statut is de status van het nieuwsbericht: prop (voorgesteld voor publicatie), publie (gepubliceerd), refuse (geweigerd).
-  maj heeft weer dezelfde betekenis als in andere tabellen.

De trefwoorden: spip_mots

-  Elk trefwoord heeft zijn unieke id_mot.

image 149 x 112


-  Het type is de groep (ofwel het type) waartoe het trefwoord behoort.
-  titre, descriptif, texte zijn de titel, de omschrijving en de tekst.
-  maj heeft weer dezelfde betekenis als in andere tabellen.

De (gesyndiceerde) sites: spip_syndic

-  Elke site heeft zijn unieke id_syndic.

image 129 x 131


-  id_rubrique en id_secteur geven aan waar in de hiërarchie de site is opgenomen.
-  nom_site, url_site, descriptif zijn de naam, de URL en de omschrijving van de site.
-  url_syndic is het adres van het bestand voor de RSS-feeds van die site.

Gesyndiceerde artikelen: spip_syndic_articles

-  Ieder gesyndiceerd artikel heeft zijn unieke id_syndic_article.

image 164 x 112


-  id_syndic verwijst naar de site (in spip_syndic).
-  titre, url, date, lesauteurs zijn de titel; de URL, de datum en de auteurs.

Interactieve elementen

De forumberichten: spip_forum

-  Ieder forumbericht heeft zijn unieke id_forum.

image 171 x 321


-  Het object waaraan het forum is gekoppeld, geïdentificeerd door zijn id_rubrique, id_article of id_breve. Standaard zijn deze waardes nul.
-  Een bericht waarop wordt gereageerd wordt aangeduid met de id_parent. De waarde is nul wanneer het een directe reactie op een object is.
-  titre, texte, nom_site, url_site zijn de titel, de tekst, en de naam en URL van een link die aan de reactie is gekoppeld.
-  auteur en email_auteur zijn de naam en het emailadres die door de schrijver werden aangegeven.
-  id_auteur geeft de identificatie van een auteur in geval van een forum op abonnement.
-  statut is de status van het bericht: publie (te zien in de publieke site), prive (geschreven als reactie in het privé gedeelte), privrac (geschreven in het interne forum), off (verwijderd of gevalideerd afhankelijk van de moderatie).
-  ip is het IP-adres van de schrijver in een publiek forum.
-  maj heeft weer dezelfde betekenis als in andere tabellen.

De petities: spip_petitions

-  id_article is het artikel waaraan de petitie is gekoppeld (één per artikel).

image 173 x 131


-  email_unique, site_obli, site_unique, message bepalen de configuratie van de petitie: het unieke emailadres van een ondertekenaar, een verplicht webadres, een uniek webadres, een bericht is bij de ondertekening toegelaten (oui of non).
-  texte is de tekst van de petitie.
-  maj heeft weer dezelfde betekenis als in andere tabellen.

De ondertekeningen van een petitie: spip_signatures

-  Elke ondertekening heeft zijn unieke id_signature.

image 167 x 188


-  id_article verwijst naar het artikel.
-  nom_email, ad_email, nom_site, url_site zijn de naam, het emailadres en de naam en URL van een website van de ondertekenaar.
-  message is een eventueel bericht.
-  statut is de status: publie (geaccepteerd), poubelle (verwijderd) en elke andere waarde is de sleutelwaarde voor de emailbevestiging.
-  maj heeft weer dezelfde betekenis als in andere tabellen.

De relaties tussen objecten

Deze tabellen leggen uitsluitend een link tussen objecten in verschillende tabellen:

-  spip_auteurs_articles geeft de relatie tussen een artikel en zijn auteur(s).
-  spip_mots_articles toont eenzelfde relatie tussen artikelen en trefwoorden.

Beheer van de site

De tabel spip_meta is fundamenteel. Zij bevat de paren (naam, waarde) geïndexeerd op de naam van verschillende gegevens die de configuratie van de site bepalen, alsmede de versie van SPIP.

De tabel spip_forum_cache wordt specifiek gebruikt voor het onmiddellijk cachen van forums.

Indexatie (zoekmachine)

De zoekmachine gebruikt zes tabellen die in twee categorieën kunnen worden opgedeeld.

De woordenlijst: spip_index_dico

Elk woord dat wordt tegengekomen wordt in deze tabel opgeslagen, alsmede de eerste 64 bits van zijn MF5-hash. Dit laatste dient als sleutelwaarde om snel op het begin van een woord te zoeken.

De indexatietabel: spip_index_*

Deze 5 tabellen beheren ieder een type object: artikelen, rubrieken, nieuwsberichten, auteurs, trefwoorden. Per woord wordt één regel opgeslagen die de hash van het woord bevat, de identificatie van het object en het aantal punten dat de indexatie opleverde. Je leest hier meer over in een apart artikel.

Auteur Hanjo Gepubliceerd op:

Vertalingen: عربي, català, English, Español, français, italiano, Nederlands