[MySQL] Gedeelde primary key (Id), Inheritance?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • hell4you
  • Registratie: Mei 2006
  • Laatst online: 15:52
Probleem: Ik heb een tabel met alle toe te kennen rechten (hebben allemaal een id) en die wil ik toe kunnen kennen aan oftewel een user oftewel een usergroup ... en dat t liefst in 1 tabel.

Wat mij het beste lijkt is om op de een of andere manier een soort van tabel te maken waar zowel user als usergroup van "erft". Deze tabel heeft dan de id, welke ik toe kan kennen aan een recht. Oftewel, ik zou graag voor zowel user als usergroup een gedeelde primary key + auto_increment hebben.

Heeft iemand ervaring met een dergelijk concept?

Verdere "oplossingen" zijn bijvoorbeeld, voor user én usergroup een kolom in de tabel met de recht-koppelingen (=50% leeg), of zonder foreign keys werken en in PHP id's gaan genereren. Zeker bij dat laatste: ;( |:(

Ook als iemand een hele andere kijk op dit concept heeft, hoor ik dat natuurlijk graag :)

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Een mogelijkheid die je niet noemt is om voor elke user een usergroup te maken met alleen die user erin. Dat zal technisch waarschijnlijk de simpelste oplossing zijn.

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 17:20
Het is sowieso niet echt een goed idee om losse users aparte rechten toe te gaan zitten kennen bij grote systemen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Koppel rechten aan principals, waarbij users en groups weak entities zijn, en dus een 1 op 1 relatie hebben met een principal. De principal tabel heeft dus een primary key veld met auto_increment, de user en group tabellen hebben een primary key die ook foreign key is naar de primary key van de principal tabel.

Beter: gebruik gewoon roles. Als iemand een bepaalde set rechten moet hebben, dan is daar een reden voor. Die reden kun je vastleggen in een role (koppeling role/recht). Vervolgens koppel je rollen aan gebruikers (kunnen er dus meerdere zijn). Een gebruiker heeft geen rechten om wie hij is, maar om welke taak/functie hij heeft.

Acties:
  • 0 Henk 'm!

  • hell4you
  • Registratie: Mei 2006
  • Laatst online: 15:52
Verwijderd schreef op dinsdag 20 juli 2010 @ 01:02:
waarbij users en groups weak entities zijn...
Hmm, dit is inderdaad de oplossing voor t probleem wat ik schetste, maar...
Verwijderd schreef op dinsdag 20 juli 2010 @ 01:02:
Beter: gebruik gewoon roles. Als iemand een bepaalde set rechten moet hebben, dan is daar een reden voor.
...ik denk dat je hier wel gelijk in hebt. En daarbij kun je natuurlijk altijd doen wat _js_ zei. Een gebruiker toevoegen met dezelfde rechten is dan snel gedaan.
Dit maakt het systeem niet alleen een stuk makkelijker, maar geeft ook nog steeds de mogelijkheid om een gebruiker aan meerdere groepen/roles toe te kennen, iets wat ik ook graag wilde. :)

Good thinking, tnx :>