[DB/ALG] Gebruikersbeheer, goed ontwerp?

Pagina: 1
Acties:

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 23-08 15:12

alienfruit

the alien you never expected

Topicstarter
Hoi

Ik wilde jullie graag om advies vragen of het ontwerp voor een database dat ik momenteel heb goed is. Het model is voor een website om deze web-site zijn verschillende momenten waar je je als bezoeker kunt registeren o.a.:

-> mailings
-> prijsvraag
-> (bedrijfs)nieuws

Nu heb ik dus een tabel gemaakt tbl_gebruikers en tbl_gebruikerstype nu is was me vraag of dit goed is!

code:
1
2
3
4
5
6
7
8
9
    tbl_gebruikers
    int userid
    varchar(40) name
    varchar(40) email
     [etc.]

     tbl_gebruikerstype
     int userid
     varchar(10) usertype (mogelijke waardes MAILING, NIEUWS, PRIJS)


Of zou ik beter gewoon een usertype kunnen toevoegen aan de tbl_gebruikers tabel?

[ Voor 8% gewijzigd door alienfruit op 26-03-2003 11:28 . Reden: vraag erbij :) ]


  • Flard
  • Registratie: Februari 2001
  • Laatst online: 20-08 14:34
Ik weet niet of het mogelijk is dat mensen zich bij meerdere items aan kunnen melden, anders is een koppeltabel tussen tbl_gebruikers en tbl_gebruikerstype misschien een betere optie

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Ik neem aan dat gebruikerstype een aantal keuzes kunnen zijn:
bv visitor, admin, editor enz?

In dat geval kan je beter een aparte tabel maken met deze types en een koppeltabel toevoegen om een userid te koppelen aan een usertype.

PS irritant die nederlands/ engelse benamingen door elkaar...

grrr @ Flard (-:

[ Voor 4% gewijzigd door Rotjeknor op 26-03-2003 11:32 . Reden: grrr @ Flard (-: ]

Ook Knor is aangestoken met het ligfietsvirus!


  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

anders is het niet zo zinvol om een aparte tabel te maken voor alleen de usertype als 1 user maar 1 van die typen kan hebben.
Als dat wel moet kunnen (1 user meerdere types) dan vind ik het ontwerp goed.

ActueleWind


  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

Rotjeknor schreef op 26 March 2003 @ 11:30:
Ik neem aan dat gebruikerstype een aantal keuzes kunnen zijn:
bv visitor, admin, editor enz?

In dat geval kan je beter een aparte tabel maken met deze types en een koppeltabel toevoegen om een userid te koppelen aan een usertype.

PS irritant die nederlands/ engelse benamingen door elkaar...
Wat zou de functie dan zijn van een extra koppeltabel?
Je kan nu toch ook meerdere types aan 1 userid toewijzen? (dan moet je alleen bij de 2e tabel userid en usertype primary key maken).
Met een join kan je alsnog alle gewenste gegevens ophalen.
Mij lijkt me een koppeltabel vrij zinloos....

ActueleWind


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Zelf zou ik kiezen voor:

tbl_gebruikerstype
int userid
int usertypeID

tbl_usertype
int usertypeID
varchar(10) usertype

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 23-08 15:12

alienfruit

the alien you never expected

Topicstarter
:) Bedankt voor de reacties

Als eerste moet het mogelijk zijn dat de gebruiker bij verschillende dingen "lid" kan worden; ik had die extra tabel gemaakt zodat je zo min mogelijk dubbele gebruikers in je tabellen hebt.

Afgeleid uit de reacties is het beste dat ik een koppeltabel gebruik.
Nu is me volgende vraag; als ik later toch een echte cms wil waarbij verschillende gebruikers gebruik van zouden kunnen maken. Zou ik dan een aparte gebruikers beheer maken voor het cms en de bezoekers of zal ik die aan elkaar koppelen.
Toch maar een tbl_gebruikers_geschiedenis maken waar ik de wachtwoord veranderingen bij hou :D

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Lurge schreef op 26 maart 2003 @ 11:34:
[...]

Wat zou de functie dan zijn van een extra koppeltabel?
Je kan nu toch ook meerdere types aan 1 userid toewijzen? (dan moet je alleen bij de 2e tabel userid en usertype primary key maken).
Met een join kan je alsnog alle gewenste gegevens ophalen.
Mij lijkt me een koppeltabel vrij zinloos....
Mijn voorbeeld was niet helemaal goed, maar ik bedoelde dus wel dat een user meerdere types kan hebben. Als je de methode van jou wilt gebruiken, dat je dus een tabel met users hebt en een tabel waarin je userid's met usertypes zet, dan krijg je in die tabel dus data teveel (aargh ik ben vandaag slecht in uitleggen).

ff ander (beter) voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
[table users]
id 
name 
etc

[table usertypes] 
id
name
etc

[table users_types]
userid
usertypeid

Jantje is article editor en event manager, Pietje is alleen event manager.
Resulteert in:

code:
1
2
3
4
5
6
7
8
9
10
11
12
[table users]
1. jantje
2. pietje

[table usertypes]
1. article editor
2. event manager

[table users_types]
1 1
1 2
2 2

[ Voor 4% gewijzigd door Rotjeknor op 26-03-2003 11:53 ]

Ook Knor is aangestoken met het ligfietsvirus!


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 23-08 15:12

alienfruit

the alien you never expected

Topicstarter
Oki Ik heb die tabellen nu in me model gemaakt :)
Nu is me volgende vraag; als ik later toch een echte cms wil waarbij verschillende gebruikers gebruik van zouden kunnen maken. Zou ik dan een aparte gebruikers beheer maken voor het cms en de bezoekers of zal ik die aan elkaar koppelen.

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Hangt ervanaf wat je als bezoeker allemaal kan en in het cms. Als het om uitgebreide dingen gaat is het misschien wel handig het te scheiden, maar anders heeft het niet veel zin denk ik. Bedenk eerst eens wat je er precies mee wil, dat helpt vaak.

Ook Knor is aangestoken met het ligfietsvirus!


  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

Rotjeknor schreef op 26 maart 2003 @ 11:52:
[...]

Mijn voorbeeld was niet helemaal goed, maar ik bedoelde dus wel dat een user meerdere types kan hebben. Als je de methode van jou wilt gebruiken, dat je dus een tabel met users hebt en een tabel waarin je userid's met usertypes zet, dan krijg je in die tabel dus data teveel (aargh ik ben vandaag slecht in uitleggen).

ff ander (beter) voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
[table users]
id 
name 
etc

[table usertypes] 
id
name
etc

[table users_types]
userid
usertypeid

Jantje is article editor en event manager, Pietje is alleen event manager.
Resulteert in:

code:
1
2
3
4
5
6
7
8
9
10
11
12
[table users]
1. jantje
2. pietje

[table usertypes]
1. article editor
2. event manager

[table users_types]
1 1
1 2
2 2
In het voorbeeld bovenaan heeft hij in de 2e tabel alleen userid en usertype dus dan krijg je geen overige data, als die tabel meerdere velden heeft dan heb je gelijk. Maar op "mijn" manier is de leesbaarheid wat groter van de tabellen :).

PS. topicstarter: zou je van die usertypes niet een enum maken ipv varchar (als je dbms dat kan natuurlijk).

ActueleWind


  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Lurge schreef op 26 March 2003 @ 13:09:
[...]

In het voorbeeld bovenaan heeft hij in de 2e tabel alleen userid en usertype dus dan krijg je geen overige data, als die tabel meerdere velden heeft dan heb je gelijk. Maar op "mijn" manier is de leesbaarheid wat groter van de tabellen :).
ghehe k, klopt (-:

Ook Knor is aangestoken met het ligfietsvirus!

Pagina: 1