Toon posts:

[mysql] Kolom met verschillende ID's erin

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een autorisatielaag te maken voor een database met meetgegevens. Nu zijn er in principe een onbeperkt aantal groepen die toegang hebben tot verschillende meetpunten. Per meetpunt moet er dus opgeslagen worden wie er toegang heeft. Dat gaat dus per ID.
Mijn vraag is dus nu: hoe kan ik deze rij met ID's opslaan in de tabel, en deze er dus ook weer makkelijk uithalen (ik moet dus later kunnen kijken of een bepaald persoon (ID) toegang heeft tot het meetpunt). Het gaat om enkele tienduizenden meetpunten, dus ik wil niet in mijn PHP-script de toegang controleren, maar eigenlijk al in mijn query.
Die query moet dus zoiets worden als SELECT meetpunt FROM meetgegevens WHERE (ID voorkomt in de lijst).

Alvast bedankt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:30
Uhm, als ik het goed begrijp wil je dus alle ID's van personen die toegang hebben tot een bepaald iets, achter mekaar in één veld steken?

Da's nu niet zo'n goeie en mooie oplossing. Moest ik van jou zijn, dan zou ik eens iets lezen over data-modellering en normaliseren. Dan zul je zien dat er andere, mooiere en betere manieren zijn om dit probleem op te lossen.

Je kunt bv een tabel bijhouden met al uw meetplaatsen aan een tabel met alle personen. Daartussen hou je een tabel bij met records die aangeven welke personen er recht hebben tot welke meetplaatsen.

Dan kun je zo'n query uitvoeren:
code:
1
2
3
SELECT meetplaatsen.* FROM meetplaatsen, userrights
WHERE meetplaatsen.meetplaatsid = userrights.meetid
AND userrights.persoonid = ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Jij stelt dus dat ik ipv alle ID's in de tabel met meetpunten, een aparte tabel maak, met daarin de toegangsrechten oid, en dan in de tabel met meetpunten een verwijzing maak naar die tabel?

Ik heb het nu even uitgetekend, en het lijkt me inderdaad een goede oplossing. Ik ga hem nu uitwerken, als het werkt, hoor je het wel.

Alvast bedankt!

Verwijderd

Je kunt je afvragen of je dit wil bijhouden per persoon of per group. Als je het per group gaat doen maakt dat de authorisatie iets complexer, maar het onderhoud van authorisaties waarschijnlijk makkelijker, zeker als er vaak meetpunten en gebruikers veranderen, maar de soort groepen die bestaan en op welk soort meetpunten ze rechten hebben redelijk contant blijft.