Hoe vaak heb je je afgevraagd over de structuur van een bestaande database? Het kan een 5 jaar oud legacy-systeem zijn of een gloednieuw open-sourceproject. Laten we eens kijken naar het ERD-diagram van de database achter het meest bekende contentmanagementsysteem:WordPress.
Wat is WordPress en hoe werkt het?
WordPress is een open-source CMS (content management system) dat voor het eerst werd uitgebracht in 2003. Het begon als een blogplatform, maar het heeft zich zo ontwikkeld dat het tegenwoordig voor bijna alles kan worden gebruikt.
Omdat WordPress een open source-project is, hebben veel ontwikkelaars de functionaliteiten in de loop der jaren uitgebreid. Er zijn duizenden widgets, thema's en plug-ins die voor WordPress zijn ontwikkeld, te vinden. Dus, zoals WordPress.org stelt:“WordPress wordt alleen beperkt door je verbeeldingskracht. (En technische snufjes.)” Achter de schermen zorgen de PHP server-side scripttaal en de MySQL-database voor de kracht.
Voor het doel van dit artikel heb ik WordPress lokaal geïnstalleerd door deze stappen te volgen:
- Ik heb WampServer gedownload en geïnstalleerd, een Windows-webontwikkelingsomgeving voor Apache, PHP en MySQL (Opmerking:de juiste smaken van Visual C++ Redistributable moeten eerst worden geïnstalleerd). Deze stap bestond voornamelijk uit het klikken op de knop "Volgende".
- Vervolgens heb ik een MySQL-database gemaakt met de naam "wordpress_database" met behulp van phpMyAdmin; je kunt natuurlijk elke naam kiezen en er later naar verwijzen.
- Ik eindigde met het downloaden en installeren van het eigenlijke WordPress-programma. Nogmaals, dit was meestal klikken op "Volgende".
Tijdens de installatie van WordPress wordt u gevraagd om een gebruikersnaam, de naam van de database die WordPress zal gebruiken en de verbindingsdetails. U moet de naam van een bestaande MySQL-database opgeven. U kunt ook het voorvoegsel kiezen dat wordt gebruikt voor het benoemen van tabellen in de database. (Ik koos voor "wp_".) Het starten van tabelnamen met een prefix is een gangbare praktijk in MySQL. Als alles goed gaat, wordt er een willekeurig wachtwoord gegenereerd voor uw project en kunt u inloggen. Nadat u zich hebt aangemeld, ziet u het WordPress-dashboard, dat er als volgt uitziet:
[
We zullen niet meer praten over WordPress-opties omdat ze niet gerelateerd zijn aan database-ontwerp. Er zijn talloze materialen online - en natuurlijk in boeken; lees boeken ☺ – die deze onderwerpen behoorlijk grondig behandelen.
Het WordPress-export-/importproces
Onze volgende stap is om te kijken naar de MySQL-database die zich achter onze WordPress-pagina bevindt. Om dit te doen, moeten we phpMyAdmin . openen . Het hoofdscherm wordt hieronder weergegeven.
Aan de linkerkant van het scherm ziet u de database met de naam “wordpress_database” met zijn tabellijst uitgebreid. Merk op dat alle tabellen de “wp_” . hebben voorvoegsel. De volgende stap is om de databasestructuur te exporteren vanuit phpMyAdmin en importeer het in Vertabelo.
Gebruik hiervoor de knop "Exporteren" en selecteer vervolgens de exportmethode "Aangepast". Kies de databasenaam die u wilt exporteren en selecteer de structuur ervan onder Formaatspecifieke opties. In dit geval wordt een SQL-bestand met DDL-instructies gemaakt en op de schijf opgeslagen.
Log daarna in op Vertabelo.com en importeer uw SQL-bestand in het nieuwe databasemodel. Klik in het dashboard op de knop "NIEUW MODEL MAKEN". Vul het tekstvak "Modelnaam" met de gewenste Vertabelo-modelnaam en kies MySQL 5.5 in de lijst "Database-engine".
In de meeste gevallen willen we beginnen met een lege database, wat voldoende is als u op de knop "MODELLEN STARTEN" klikt. Maar in dit geval willen we een bestaand SQL-bestand gebruiken. Om dat te bereiken moeten we:
- Selecteer "Van SQL" in het gedeelte "Initieel model".
- Klik op de knop "Bestand kiezen" en haal het bestand op van onze computer met behulp van de knop "Bladeren".
- Klik op de knop "SQL importeren".
Als alles goed is gegaan, zie je "Het model is succesvol geïmporteerd". Ook wordt de knop "START MODELING" ingeschakeld. Klik erop en begin je bestaande model te gebruiken.
We kunnen nu nieuwe functies toevoegen, of we kunnen gewoon trots zijn op onszelf en ons smaakvol weergegeven database-ontwerp. Onthoud dat die foto meer zegt dan duizend woorden!
Op dit punt wordt het model geopend in Vertabelo en uiteindelijk zien we onze tabellen - en niet alleen als SQL-code. We krijgen zoiets als dit (ik heb de tabellen een beetje herschikt):
Het eerste dat ons opvalt, is de afwezigheid van relaties tussen de tabellen. Dat komt omdat de standaard WordPress-installatie geen referentiële integriteit afdwingt. WordPress gebruikt de MyISAM-opslagengine, die meer functionaliteit en betere prestaties biedt, maar geen externe sleutels ondersteunt.
Voor dit artikel heb ik een leeg WordPress-project gemaakt en het enige dat ik kan zien is een lege pagina. Het klinkt misschien gek, maar dat is genoeg om het WordPress-databasemodel te verkennen. Hoe ingewikkeld een WordPress-site ook is, er worden altijd dezelfde tabellen gebruikt. Het gebruik van dezelfde kerncode en metavelden geeft WordPress voldoende flexibiliteit om sites te runnen, hoe verschillend hun functie, ontwerp of stijl ook is.
Er is nog meer WordPress te zien
We hebben van WordPress ons voorbeeld gemaakt omdat het veel wordt gebruikt en bekend staat om zijn eenvoud. We hadden echter elk ander CMS of elk ander project met een database erachter kunnen gebruiken. Ik wed dat je veel situaties kunt bedenken waarin je je bestaande databaseproject zou willen verplaatsen naar een databaseontwerptool. Vertabelo biedt de mogelijkheid om eerder ontworpen modellen te importeren en binnen het systeem verder te werken. Tijdens de totstandkoming van dit artikel heb ik Importeren uit het bestand met de DDL-statements gebruikt.
In ons volgende artikel zullen we relaties tussen tabellen leggen en de tabeldefinities nader bekijken. In de tussentijd kunt u uw ideeën en feedback delen in de opmerkingen hieronder.