Databasedesign til avancerer CMS-system
Hej alle,Jeg er igang med et lidt større projekt - jeg vil udvikle et nyt CMS. Det bliver selvfølgelig OOP, bygget på MVC - faktisk bruger jeg Zend Framework. Jeg har tænkt mig at bygge det lidt ligesom: http://vimeo.com/7126991 .
Her er hvad jeg har fået lavet: http://ag-s.dk/Database.png
Jeg prøver altså at adskille de "core" admin ting, fra content, og modules. Modules ser jeg som ting man kan tilføje til sider. F.eks. et galleri, kommentarer, video, nyhedsbrev, osv.
Så har jeg lavet "Admin Modules" (admin_modules). Det ser jeg som at være modules, men på admin-delen. Det kan f.eks. være håndtere sider (oprette, redigere og slette sider), lave bookmarks til sig selv, skrive noter, og måske også lave et chatsystem mellem admins.
Ved dog ikke hvordan jeg skal strukturere alt dette, i min database. Kunne godt tænke mig, at når jeg skulle lave nye modules, skal jeg kun rette i den. Ikke noget med at pille ved nogle andre filer. Moduler skal faktisk virke, hvis man smider dem ned i /modules/ mappen. Så hvis jeg laver et nyhdedsmodul, og smider det ned i mappen (/modules/news/) skal det bare virke. Det store spørgsmål er bare, hvordan jeg skal designe databasen.
Skal jeg splitte tabellerne mere op? Hvordan kan det blive nemmere, at udvikle nye moduler? Strukturerer jeg mine moduler i databasen godt? Har gjort det sådan, når man laver et module, så bruger man faktisk "modules" tabellen. Hvis man så vælger, lad os sige text, så laver den en row i modules_text med ID'et fra modules - så de peger på hinanden. Ved ikke om jeg er på afveje.
I bund og grund er mit spørgsmål, hvordan man skal strukturere sin database, for store CMS'er, så man nemt kan udvikle moduler til det.