Database design - Core
This page serves to provide an insight in the design of the core microservice.
As of right now I am unsure whether to put this here (GENERAL) or on the core confluence (OMSCORE), for the time being I put it here to have everything in one place, and there is not much else anyway right now.
Database
Proposal version 3
By Derk Snijders and Nico
The role part of the diagram (the white tables) were left untouched and are scheduled for a rework later on.
Summing up ideas:
Having members as the central, main, object and has the following:
- Auths
- Roles
- Studies
- Bodies
Auths
This is the object containing login (session) information.
Roles
Links the member to having certain permissional roles and permissions. To be replaced in the future.
Studies
A member can be linked to multiple studies. For each study the field and type can be stored as well as indicating its status (in progress, done, etc.). The university is also attached to a study.
Bodies
The most interesting part. A member can have multiple memberships to a body attached to it. A body has a certain global type (ie. locals, commissions, etc.) and a body has a set of circles it supports. Circles are a very loose concept, it can be used to indicate interest or have more strict meaning such as being board of a local. It really is just a way of grouping members. There are global circles, common among multiple bodies, but a body can also have local only circles (local specific committees). Local circles can extend global circles, remaining connected to the global group, but being able to customize it a bit to the body's liking.
A member can be a member of multiple bodies, in each having a (independent) set of circles he is in which in turn can be connected on a global level.