Dag mede-Tweakers
Ik probeer wat bij te leren en te programmeren. Ik werk in een wat onbenullige taal B4X omdat ik dat leuk vind.
Nu werk ik vaak met een MySQL database en daaruit vloeit voort dat ik vaak modellen maak die de verschillende tables weerspiegelen. Maar omdat dit nogal repetitief werk is en ik weet dat er in andere talen vaak gebruik wordt gemaakt van ORM en ik in een avontuurlijke bui ben dacht ik: Waarom niet m'n eigen ORM(tje) maken. For the sake of it. Het idee is dat ik eerst een MySQL database maak, en vanaf daar makkelijk mijn klasses kan genereren die corresponderen met tables. Ik heb zelf nog nooit een ORM pakket gebruikt.
Zo gezegd, zo gedaan. Maar ik zit in de problemen met many-to-many relaties + meta data.
Voorbeeld:

Dus je ziet een User, die heeft 1 of meerdere wallets. En een wallet heeft 1 of meerdere 'eigenaars'.
Mijn probleem zit in deze op de meta data 'permission'. Permission kan in dit geval bijvoorbeeld 0, 1, 2 zijn. Waar 0 enkel het bekijken van de wallet is, 1 dat er ook geld kan uitgegeven worden, en 2 dat je je owner rights hebt en dus anderen rechten kan geven. Dit is een beetje een gemaakt voorbeeld, en ik snap dat er andere manieren zijn om rechten te regelen, maar het is gewoon een voorbeeld ter illustratie van mijn probleem.
De models die ik genereer zijn dus 2 classes:
User en Wallet. Een User heeft een property Wallets dat een List van Wallet objecten terug geeft. Omgekeerd heeft een Wallet een property Users dat een List van User objecten terug geeft.
Maar hoe zou ik de rechten hierin verwerken? Ik wil vermijden dat ik aparte User_Wallet klasse moet maken, omdat dit OOP gewijs wat wringt en teveel naar MySQL neigt.
De artikels die ik online vind over ORM's zoals Doctrine of Django etc gaan niet in op metadata over de many-to-many relatie.
Meningen, tips of ideeën zijn erg welkom!
Ik probeer wat bij te leren en te programmeren. Ik werk in een wat onbenullige taal B4X omdat ik dat leuk vind.
Nu werk ik vaak met een MySQL database en daaruit vloeit voort dat ik vaak modellen maak die de verschillende tables weerspiegelen. Maar omdat dit nogal repetitief werk is en ik weet dat er in andere talen vaak gebruik wordt gemaakt van ORM en ik in een avontuurlijke bui ben dacht ik: Waarom niet m'n eigen ORM(tje) maken. For the sake of it. Het idee is dat ik eerst een MySQL database maak, en vanaf daar makkelijk mijn klasses kan genereren die corresponderen met tables. Ik heb zelf nog nooit een ORM pakket gebruikt.
Zo gezegd, zo gedaan. Maar ik zit in de problemen met many-to-many relaties + meta data.
Voorbeeld:

Dus je ziet een User, die heeft 1 of meerdere wallets. En een wallet heeft 1 of meerdere 'eigenaars'.
Mijn probleem zit in deze op de meta data 'permission'. Permission kan in dit geval bijvoorbeeld 0, 1, 2 zijn. Waar 0 enkel het bekijken van de wallet is, 1 dat er ook geld kan uitgegeven worden, en 2 dat je je owner rights hebt en dus anderen rechten kan geven. Dit is een beetje een gemaakt voorbeeld, en ik snap dat er andere manieren zijn om rechten te regelen, maar het is gewoon een voorbeeld ter illustratie van mijn probleem.
De models die ik genereer zijn dus 2 classes:
User en Wallet. Een User heeft een property Wallets dat een List van Wallet objecten terug geeft. Omgekeerd heeft een Wallet een property Users dat een List van User objecten terug geeft.
Maar hoe zou ik de rechten hierin verwerken? Ik wil vermijden dat ik aparte User_Wallet klasse moet maken, omdat dit OOP gewijs wat wringt en teveel naar MySQL neigt.
De artikels die ik online vind over ORM's zoals Doctrine of Django etc gaan niet in op metadata over de many-to-many relatie.
Meningen, tips of ideeën zijn erg welkom!