Hoe maken jullie jullie database op
Dus alle tabellen, Hoe start je en bouw je (langzaam) op.
Op web heb je soms maar 1 db dus staan tabellen door elkaar van meerdere projecten. Als je antwoord hou het dus op 1 project.
Lijkt me ook leerrijk voor beginners en gevorderden (Hoe doet iemand anders het :) ).
Jan
Daarvoor gebruik ik dan een prefix in de vorm foo_tabelnaam voor alle tabellen van Foo. Net namespaces eigenlijk. Het wordt bijvoorbeeld vervolgens ook foo_bar_tabelnaam voor alle tabellen voor het onderdeel Bar van Foo.
Gewijzigd op 23/01/2015 10:12:57 door John D
Voor ik aan een project begin maak ik eerst een ontwerp op papier, met alle tabellen en relaties. Altijd handig om dan bijvoorbeeld hier even de inbreng van derden te vragen, ik wil nog wel eens iets over het hoofd zien. Uit ervaring weet ik dat het handig is om verder te kijken dan wat je nu nodig hebt. Hou rekening met eventuele uitbreidingen, complexering (is dat een woord?) etc. Beter nu een beetje extra werk doen dan later je hele database-structuur overhoop moeten gooien en veel scripting opnieuw doen (weet ik ook uit ervaring).
Als je bijvoorbeeld een webshop maakt met categorieën, hou dan rekening met eventuele sub-categorieën, verschillende btw-tarieven etc.
Tijdens het ontwikkelen worden de tabellen aangemaakt met migrations op het moment dat ze nodig zijn.
Migrations kunnen uitgevoerd worden met onderdelen van het framework (Bijvoorbeeld Laravel heeft het als onderdeel) Of met een losse tool zoals https://github.com/ruckus/ruckusing-migrations
Tabellen van meerdere applicaties worden nooit bij elkaar geplaatst. Tevens worden tabellen niet geprefixed (dat maakt bladeren ook zo traag omdat je niet snel op de u kunt klikken om naar de users table te gaan)
Tobias Tobias op 23/01/2015 10:49:49:
Voor ik aan een project begin maak ik eerst een ontwerp op papier
Daarvoor zou ik aanraden om iets als Mysql Workbench te gebruiken. Papier werkt voor mij niet omdat je dan niks kunt verslepen of aanpassen. Wordt krassen en doorstrepen en dat blokkeert je creatieve proces.
Een leuke webbased app is https://code.google.com/p/wwwsqldesigner/. Ook hier kun je FK aanbrengen en direct de benodigde sql genereren om de db te maken. Ik weet alleen niet in hoeverre dit nog op gaat tegenwoordig omdat de app niet meer is geupdate na 2010.
Als ik begin met scripten, ga ik bijvoorbeeld aan een systeem voor gebruikers. Als dat af is, heb ik de tabel/column-namen al bepaald.
Daarna ga ik kijken of alle namen nog relevant genoeg zijn (Bijvoorbeeld, ik bepaal eerst dat gebruikers met mail in moeten loggen, maar dan besef ik dat gebruikersnaam (of allebei) handiger is)
Henk de Vriep op 23/01/2015 10:58:42:
Een leuke webbased app is https://code.google.com/p/wwwsqldesigner/. Ook hier kun je FK aanbrengen en direct de benodigde sql genereren om de db te maken. Ik weet alleen niet in hoeverre dit nog op gaat tegenwoordig omdat de app niet meer is geupdate na 2010.
Bedankt voor de tip!
Laatste update is van 2012, dus even kijken of hij nog werkt
Tobias Tobias op 23/01/2015 11:05:03:
Bedankt voor de tip!
Laatste update is van 2012, dus even kijken of hij nog werkt
Henk de Vriep op 23/01/2015 10:58:42:
Een leuke webbased app is https://code.google.com/p/wwwsqldesigner/. Ook hier kun je FK aanbrengen en direct de benodigde sql genereren om de db te maken. Ik weet alleen niet in hoeverre dit nog op gaat tegenwoordig omdat de app niet meer is geupdate na 2010.
Bedankt voor de tip!
Laatste update is van 2012, dus even kijken of hij nog werkt
hij werkt zeker nog, ik gebruik hem dagelijks thuis voor de hobby. Op mijn werk gebruik ik een geavanceerd betaald pakket al vind ik deze makkelijker werken.
Graag kom ik nog even terug op het uitwerken op papier. Uiteraard zet ik ook wel eens wat op papier maar een hele database uittekenen op papier dat is echt niet goed naar mijn mening. Doordat je een maximale scope hebt; bijvoorbeeld een a4'tje kun je niet schalen/customizen. Met een app die ik net aandroeg kun je in principe oneindig doorgaan.
Het is inderdaad ook heel belangrijk om flink out of the box te denken. Ik ken legio voorbeelden waar men een database geschreven heeft en er na een half jaar achter kwam dat het totaal niet schaalbaar was en eigenlijk helemaal verkeerd gedaan is. De database moest helemaal omgegooid worden waardoor er ook heel veel regels code opnieuw geschreven moesten worden. Denk dus goed na voordat je zegt; de database is nu klaar. De database is nooit klaar, zorg er voor dat deze
(oneindig) schaalbaar is.
Ik werk meestal met 1 database met daarin de benodigde tabellen. One pipe per client, misschien ben ik wel teveel fan van het in onbruik geraakte telnet protocol.