Hoe maken jullie jullie database op

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan R

Jan R

23/01/2015 07:11:57
Quote Anchor link
Onlangs werd me gevraagd. Hoe maak je je 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
 
PHP hulp

PHP hulp

26/04/2024 19:24:01
 
Ward van der Put
Moderator

Ward van der Put

23/01/2015 08:18:28
Quote Anchor link
>> Op web heb je soms maar 1 db dus staan tabellen door elkaar van meerdere projecten.

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.
 
John D

John D

23/01/2015 10:11:34
Quote Anchor link
Per applicatie een database, ik plaats nooit tabellen door elkaar en wanneer er een functionele relatie tussen applicaties is dan middels authorisatie van de een naar de ander. Dat geeft je desgewenst ook de ruimte om in dezelfde MySQL een test of kopie database (voor foutzoeken) aan te maken. In principe ongebruikelijk om dat naast een productie database te doen maar het kan voorkomen. Overigens vind ik de term database misplaatst, in mijn werk heet een applicatieverzameling tabellen een schema of een user-schema. Het MySQL engine op zich is de "database". Een database bevat meerdere schema's. MySQL heeft vanaf het begin echter schema's databases genoemd: show databases.
Gewijzigd op 23/01/2015 10:12:57 door John D
 
Tobias Tobias

Tobias Tobias

23/01/2015 10:49:49
Quote Anchor link
Voor meerdere applicaties gebruik ik ook een prefix.
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.
 
TJVB tvb

TJVB tvb

23/01/2015 10:56:22
Quote Anchor link
Voor wat grotere projecten wordt een technisch ontwerp gemaakt waarin o.a. een database diagram zit. Bij kleine projecten werken we vaak zonder een volledig technisch ontwerp.

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)
 
Henk de Vriep

Henk de Vriep

23/01/2015 10:58:42
Quote Anchor link
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.
 
Koen Hollander

Koen Hollander

23/01/2015 11:00:37
Quote Anchor link
Ik doe voor ieder project 1 database.

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

Tobias Tobias

23/01/2015 11:05:03
Quote Anchor link
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
 
Henk de Vriep

Henk de Vriep

23/01/2015 11:17:57
Quote Anchor link
Tobias Tobias op 23/01/2015 11:05:03:
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.
 
Yoop Overmaat

Yoop Overmaat

23/01/2015 11:20:41
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.