Hvor ofte har du undret dig over strukturen af en eksisterende database? Det kunne være et 5 år gammelt legacy-system eller et helt nyt open source-projekt. Lad os tage et kig på ERD-diagrammet over databasen bag det mest berømte indholdsstyringssystem:WordPress.
Hvad er WordPress, og hvordan fungerer det?
WordPress er et open source CMS (content management system), der oprindeligt blev udgivet i 2003. Det startede som en blogplatform, men det har udviklet sig så meget, at det i dag kan bruges til næsten alt.
Fordi WordPress er et open source-projekt, har mange udviklere udvidet dets funktionaliteter gennem årene. Tusindvis af widgets, temaer og plugins udviklet til WordPress kan findes. Så, som WordPress.org siger, "WordPress er kun begrænset af din fantasi. (Og tech chops.)” Bag kulisserne giver PHP server-side scripting sprog og MySQL database kraften.
Til formålet med denne artikel har jeg installeret WordPress lokalt ved at følge disse trin:
- Jeg downloadede og installerede WampServer, et Windows-webudviklingsmiljø til Apache, PHP og MySQL (Bemærk:Den eller de korrekte varianter af Visual C++ Redistributable skal installeres først). Dette trin involverede for det meste at klikke på knappen "Næste".
- Dernæst oprettede jeg en MySQL-database ved navn "wordpress_database" ved hjælp af phpMyAdmin; selvfølgelig kan du vælge et hvilket som helst navn og senere henvise til det.
- Jeg afsluttede med at downloade og installere det faktiske WordPress-program. Igen var dette for det meste at klikke på "Næste".
Under WordPress-installationen bliver du bedt om at angive et brugernavn, navnet på den database, WordPress vil bruge, og forbindelsesdetaljerne. Du skal angive navnet på en eksisterende MySQL-database. Du kan også vælge det præfiks, der skal bruges til at navngive tabeller i databasen. (Jeg valgte "wp_".) At starte tabelnavne med et præfiks er en almindelig praksis i MySQL. Hvis alt går godt, vil der blive genereret en tilfældig adgangskode til dit projekt, og du kan logge ind. Når du har logget ind, vil du se WordPress-dashboardet, som ser sådan ud:
[
Vi vil ikke tale mere om WordPress-muligheder, fordi de ikke er relateret til databasedesign. Der er tonsvis af materialer online – og selvfølgelig i bøger; læs bøger ☺ – der dækker disse emner ret grundigt.
Wordpress eksport/importproces
Vores næste skridt er at se på MySQL-databasen, der ligger bag vores WordPress-side. For at gøre det skal vi åbne phpMyAdmin . Hovedskærmen er vist nedenfor.
I venstre side af skærmen kan du se databasen med navnet “wordpress_database” med sin tabelliste udvidet. Bemærk, at alle tabeller har “wp_” præfiks. Det næste trin er at eksportere databasestrukturen fra phpMyAdmin og importer det til Vertabelo.
For at gøre det, brug knappen "Eksporter" og vælg derefter eksportmetoden "Brugerdefineret". Vælg det databasenavn, du vil eksportere, og vælg dets struktur under Formatspecifikke indstillinger. I dette tilfælde vil en SQL-fil med DDL-sætninger blive oprettet og gemt på disken.
Log derefter på Vertabelo.com og importer din SQL-fil til den nye databasemodel. I dashboardet skal du klikke på knappen "OPRET NY MODEL". Udfyld tekstboksen "Modelnavn" med det ønskede Vertabelo-modelnavn, og vælg MySQL 5.5 på listen "Databasemotor".
I de fleste tilfælde ønsker vi at starte med en tom database, hvilket vil gøre at klikke på knappen "START MODELING". Men i dette tilfælde vil vi bruge en eksisterende SQL-fil. For at opnå det skal vi:
- Vælg "Fra SQL" i afsnittet "Initial model".
- Klik på knappen "Vælg fil", og hent filen fra vores computer ved at bruge knappen "Gennemse".
- Klik på knappen "Importer SQL".
Hvis alt gik fint, vil du se "Modellen blev importeret med succes". Desuden vil knappen "START MODELLING" være aktiveret. Klik på den og begynd at bruge din eksisterende model.
Vi kan nu tilføje nye funktioner, eller vi kan simpelthen være stolte af os selv og vores smagfuldt viste databasedesign. Husk, det billede siger mere end tusind ord!
På dette tidspunkt vil modellen åbne i Vertabelo, og endelig vil vi se vores tabeller - og ikke kun som SQL-kode. Vi får noget som dette (jeg har omarrangeret bordene lidt):
Det første, vi bemærker, er fraværet af relationer mellem tabellerne. Det skyldes, at standard WordPress-installation ikke håndhæver referenceintegritet. WordPress bruger MyISAM-lagringsmotoren, som giver mere funktionalitet og bedre ydeevne, men som ikke understøtter fremmednøgler.
Til formålet med denne artikel oprettede jeg et tomt WordPress-projekt, og det eneste, jeg kan se, er en tom side. Det lyder måske dumt, men det er nok til at udforske WordPress-databasemodellen. Uanset hvor kompliceret et WordPress-sted er, bruger det altid de samme tabeller. Brug af den samme kernekode og metafelter giver WordPress tilstrækkelig fleksibilitet til at køre websteder, uanset hvor forskellige deres funktion, design eller stil er.
Der er stadig mere WordPress at se
Vi har gjort WordPress til vores eksempel, fordi det er meget brugt og kendt for sin enkelhed. Vi kunne dog have brugt et hvilket som helst andet CMS eller ethvert andet projekt, der har en database bag sig. Jeg vil vædde på, at du kan komme i tanke om mange situationer, hvor du gerne vil flytte dit eksisterende databaseprojekt ind i et databasedesignværktøj. Vertabelo tilbyder muligheden for at importere tidligere designede modeller og fortsætte med at arbejde på dem i systemet. Under dannelsen af denne artikel brugte jeg Importer fra filen med DDL-sætningerne.
I vores næste artikel vil vi etablere relationer mellem tabeller og se nærmere på tabeldefinitionerne. I mellemtiden er du velkommen til at dele dine ideer og feedback i kommentarfeltet nedenfor.