Ik ben voor mezelf bezig met het opzetten van een soort van 'framework' voor een beveiligde website. Dit project ben ik gestart voor mezelf om wat meer te leren over de aanpak van een wat groter project, ik wil graag jullie mening horen over het indelen van het data-model. Zoals gewoonlijk bij een nieuw project ben ik begonnen met het opschrijven van alle functionaliteiten die ik graag zou willen hebben.

De functionaliteiten:

  • [li]Inloggen, Uitloggen, Registreren, Wachtwoord wijzigen, Wachtwoord reset[/li]
    [li]Gebruiker bannen[/li]
    [li]Logging van events (inloggen,uitloggen,etc)[/li]
    [li]Account activatie dmv email[/li]
    [li]Meerdere profielen per gebruiker[/li]
    [li]Rollen gebaseerde rechten (admin, gebruiker, etc)[/li]
    [li]Gebruikers kunnen Klachten over een andere gebruiker versturen[/li]
    [li]Gebruikers kunnen berichten naar elkaar sturen[/li]
    [li]Gebruikers kunnen vrienden van elkaar worden[/li]
    [li]Gebruikers kunnen lid kunnen worden van meerdere Mailinglijsten[/li]
    [li]Profiel afhankele instelingen[/li]
    [li]Ondersteuning voor meerdere talen[/li]


Nu heb ik hiervoor het volgende datamodel bedacht.



edit: aangepast na commentaar Midas

Voor de duidelijkheid, het zijn allemaal 1:n 'non-identifying' relaties.


Zouden jullie dit ook zo aanpakken? Zien jullie ergens punten die voor verbetering vatbaar zijn? Zitten er ontwerp-fouten in? Of hebben jullie goede aanvullingen?

Ik zie een password veld van 45 tekens. Md5() is 32 tekens, sha1() 40. Kies dus een van die twee lengtes. Verder zie ik zo even snel niets. (Het is nog vroeg ;-))

Overigens spel je description en birthdate verkeerd in je screenshot, die overigens erg duidelijk is. Netjes gedaan.

Edit: ik zie nog geen velden voor een wachtwoord reset.
Het heeft verder niet zoveel met je vraag te maken, maar wat voor programma gebruik je om je datamodel te maken? Ik zoek nog steeds naar een goede namelijk...
@Midas,

je hebt idd gelijk met het password field.. Dank voor de spelfouten-check..

Een wachtwoord reset zou in dit geval gewoon het bestaande wachtwoord overschrijven nadat de gebruiker via e-mail een linkje aanklikt.

@Mark,

Ik gebruik hiervoor MySQL Workbench.. ZEER handig, gewoon op 1 knop klikken en je forward-engineer deze hele opzet naar je MySQL server.
Ziet er naar mijn mening goed uit. Nu nog in de praktijk brengen. Hoop dat je genoeg ervaring hebt, Ben er wel benieuwd naar als het af is.

Een wachtwoord reset zou in dit geval gewoon het bestaande wachtwoord overschrijven nadat de gebruiker via e-mail een linkje aanklikt.


Zo zou ik het inderdaad ook aanpakken.

Succes ermee !

Reageren