Hallo allemaal,

Ik ben bezig een webshop te bouwen in mijn CMS. Nu wil ik beginnen om de database voor webshop-users, orders en betalingen te ontwerpen.

Ik heb een aantal bedenkeningen voor de 1e stap, webshop-users.
Deze webshop-users kunnen inloggen op de website. Maar, het is ook gewenst door een andere klant van mij om een inlog te maken.
Wat stellen jullie voor? Alles 1 in DB gooien en op deze manier aangeven of de gebruiker dingen kan bestellen of gewoon elke user toegang hiertoe geven.

Je krijgt anders 3 soorten users in mijn database;
cms-users (hebben toegang tot het cms en hieraan zijn rollen gekoppeld e.d)
webshop-users (spreekt voor zich denk ik)
inlog-user (dit kan voor afgeschermde content zijn)

Ik denk persoonlijk dat het beter is om de laatste 2 soorten users te combineren in 1 tabel.



---

Dan mijn 2e vraag, adresgegevens. Hoe kan ik dit het beste opslaan? Factuur en afleveradres is vaak gewenst maar moet niet verplicht zijn omdat ingelogde gebruikers die niet gebruikmaken van het webshop gedeelte het nodig hebben.

Ik zelf denk dat het opgeslagen kan worden in een tabel met adresgegevens o.i.d en dan deze linken aan een user.

graag jullie adviezen en ervaringen hierbij.

Thanks :)
Je wilt dus drie soorten rollen meegeven aan de gebruikers, waarbij je bij cms-users dus ook rechtensets eraan koppelt?

Ikzelf zou gewoon voor alle typen users een geheel RBAC-rechtensysteem maken, waarmee je kan bepalen wat ze wel/niet mogen. Dan kan je de rechten defineren in rechtensets die dan je koppelt aan de gebruikers.
Aar, dit is niet wat ik wil.
Het is meer of ik 2 of 3 tabellen met users moet hebben.

webusers
cmsusers

Hiermee kan ik onderscheidt maken tussen 3 soorten gebruikers:
ingelogde gebruikers en webshop gebruikers
gebruikers voor het cms

Hopelijk begrijp je het nu een beetje.
Onderscheid moet je niet met tabellen maken, maar via een veld.

Dus alle gebruikers in 1 tabel, en per gebruiker bepaald je wat voor gebruiker het is. Maar dan neig ik meer naar een RBAC-rechtensysteem om flexibeler erin te zijn.
Persoonlijk zou ik er voor kiezen om 'klanten' in een aparte tabel op te slaan. Verder ga ik met Aar mee.
>>Persoonlijk zou ik er voor kiezen om 'klanten' in een aparte tabel op te slaan. Verder ga ik met Aar mee.
Een webshop user kan ook een klant zijn en/of omgekeerd. Verder ga ik helemaal met Aar mee, dus RBAC
Kwestie van datamodellering en 3e normaalvorm. (Chris Date, boek 1 les 1 pagina 1 uitgave 1987)
Ik maak al gebruik van het RBAC. Alleen voor webshop gebruikers en ingelogde wou ik het weten. Ik maak dan onderscheidt in 2 hoofdusers in 2 tabellen.
De webusers, wat valt onder webshop user of ingelogde gebruiker voor een bepaald gedeelte.
En de CMS user waarmee toegang kan worden verkregen om de website te bewerken e.d
Waarom zou je geen 2 tabellen mogen gebruiken voor cms-users en webshop-users?

Beiden hebben (als ik Rickerst goed begrijp) een totaal andere functie. Webshop-users zijn front-end gebruikers en cms-users zijn back-end gebruikers. Op het moment dat je via de admin-login url inlogt, lijkt het me nutteloos om de complete klanten-tabel te controleren op username en password. Daarnaast zou een cms-user andere functionaliteit (en een andere databasemodel) kunnen hebben dan een front-end gebruiker. Dat je niet voor iedere TYPE cms-user/admin een andere tabel maakt, lijkt me logisch. Maar een onderscheid tussen cms-users en webshop-users lijkt me niet verkeerd.
Dat is precies wat ik bedoelde.
Een cms user hoeft geen adres te hebben en is seperaat aan het frontend. We heb ik rollen en rechten toegekend aan de cms user.
Lijkt me prima Rickert. Soms zijn er goede redenen om af te wijken van de "regels" en dit lijkt me zo'n geval. Je moet vooral naar de functionaliteit van de gebruikers in het algemeen kijken. Het zijn weliswaar allemaal gebruikers, maar hun onderlinge "rol" in het plaatje verschilt enorm. Cms-users zorgen dat de site onderhouden wordt, en webshop-users zijn de klanten. Trekken we dat plaatje voor de grap even door, dan zou je het kunnen vergelijken met de medewerkers van een supermarkt (die de supermarkt onderhouden) en de gergistreerde (met een klantenkaart) supermarkt-gebruikers, ofwel de klanten. Alle medewerkers en geregistreerde klanten die stop je ook niet in 1 tabel. Het zijn weliswaar allemaal mensen die in de supermarkt rondlopen, maar hun rol is totaal verschillend.
Ja wellicht is het niet echt afwijken maar onderscheidt maken.
Je kan daarna bij beide users van de rolverdeling uitgaan.

Maar wat is nu de beste manier om adressen te linken aan de webusers? Niet elke webuser heeft er 1 en sommige hebben er 2 vanwege het factuur en verzendadres.

Reageren