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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.