===============================================================================================
Feature: #5082-Data Model Refactoring
===============================================================================================

See :issue:`5082`

Description
============

Im Rahmen eines allgemeinen Refactorings von Teilen des Datenmodells von Schullogin, wurden die folgenden Punkte adressiert:

* Allgemeine Refactorings
* Datenbankseitige Erzwingung eines eindeutigen SaxSVS-Synchronisation-Keys pro Account
* Datenbankseitige Erzwingung einer Stammmitgliedschaft für jede Person
* Anreicherung von Mitgliedschaften mit zusätzlichen Informationen (i.e., Typ und ggf. Klassenstufe)
* Implementierung und Sicherstellung der Möglichkeit der eindeutigen Identifizierbarkeit von Mitgliedschaften über die zugehörige Einrichtung, den Typ und die Bezeichnung sowie Bereinigung redundanter Daten
* Bereinigung von zu Mitgliedschaftobjekten gehörigen in Personenobjekten gespeicherter Daten
* Einführung einer Einrichtung zum einfachen Handling von Personen mit unklarer Stammmitgliedschaft
* Einlesen von SaxSVS-Responsibilities über die zugehörigen Schnittstellen
* Optimierung der existierenden Datenbanktabellen

Des Weiteren wurden im Rahmen der Implementierung der Möglichkeit der Synchronisierung von Daten von Schullogin zu anderen Diensten die folgenden Punkte adressiert:

* Implementierung einer Messaging-Queue als Grundlage der Verarbeitung von Änderungen in zu synchronisierenden Datensätzen
* Implementierung eines Endpunkts zum Push von Synchonisationskonfigurationen sowie einer UI zur Einsicht dieser
* Implementierung eines SchulConneX-Clients zur Synchronisation der Daten unter Verwendung der SchulConneX-Spezifikation

Impact
======

* Performance
* Stabilität