sketch for new data model

This commit is contained in:
2026-07-23 17:31:38 +02:00
parent 416a686877
commit fd25576b0e
+19 -18
View File
@@ -1,24 +1,26 @@
Ext_CRM.Master
Ext_Kontaktliste.Master
ma_id int pk
Ext_CRM.Ansprechpartner
Ext_Kontaktliste.Ansprechpartner
an_id int pk
ma_id int -> Ext_CRM.Master(ma_id)
ma_id int -> Ext_Kontaktliste.Master(ma_id)
Unternehmen | Es wird nur die ID für die Kontaktliste referenziert. Alle relevanten Infos werden live aus der Kontaktliste geladen via 'ATTACH'.
ma_id int pk -> Ext_CRM.Master(ma_id)
un_id int pk -> Ext_Kontaktliste.Master(ma_id)
hinzugefuegt_am "timestamp with time zone"
geloescht_am "timestamp with time zone" nullable
Grunderfassung_Personen_Zusatzdaten_Unternehmen
erf_id int pk -> Grunderfassung_Personen(erf_id)
Partnersuche__un_suche int -> Ext_CRM.Master(ma_id)
Partnersuche__person_suche int -> Ext_CRM.Ansprechpartner(an_id)
Grunderfassung_Personen_Unternehmen_Zuordnung
id int pk {autoIncrement}
pers_id int pk -> Grunderfassung_Personen(pers_id) unique=uq_aktive_zuordnung
un_id int -> Unternehmen(un_id) unique=uq_aktive_zuordnung | alias 'Partnersuche__un_suche'
an_id int -> Ext_Kontaktliste.Ansprechpartner(an_id) | alias 'Partnersuche__person_suche
Partnersuche__kanal_aufmerksamkeit text nullable
gueltig_ab "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)`
gueltig_bis "timestamp with time zone" nullable | Soft-Delete Marker (partieller Unique-Index: WHERE deleted_at IS NULL)
Grunderfassung_Personen
erf_id int pk {autoIncrement}
pers_id int pk {autoIncrement}
geloescht "timestamp with time zone" nullable
Metadaten_erstellung "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)` nullable
Metadaten_aktualisierung "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)` nullable {on_update: `datetime.datetime.now(datetime.UTC)`}
@@ -70,17 +72,17 @@ Grunderfassung_Personen
WeitereInfos__WI_meldung_institution text nullable
Zuordnung_Personen_Unternehmen | Eine Person kann zu mehreren Unternehmen gehören, ein Unternehmen kann mehrere Personen betreuen.
id int pk {autoIncrement}
un_id int -> Grunderfassung_Unternehmen(un_id)
pers_id int -> Grunderfassung_Personen(pers_id)
gueltig_ab "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)`
gueltig_bis "timestamp with time zone" nullable
# Zuordnung_Personen_Unternehmen | Eine Person kann zu mehreren Unternehmen gehören, ein Unternehmen kann mehrere Personen betreuen.
# id int pk {autoIncrement}
# un_id int -> Grunderfassung_Unternehmen(un_id)
# pers_id int -> Grunderfassung_Personen(pers_id)
# gueltig_ab "timestamp with time zone"=`datetime.datetime.now(datetime.UTC)`
# gueltig_bis "timestamp with time zone" nullable
Beratung_Vorgang | Beratung kann an Unternehmen allein (pauschal), Person allein (pauschal) oder beide (individual) gebunden sein
vorgang_id int pk {autoIncrement}
un_id int nullable -> Grunderfassung_Unternehmen(un_id) | Pauschalberatungen sind sowohl für Unternehmen als auch Personen zulässig
un_id int nullable -> Unternehmen(un_id) | Pauschalberatungen sind sowohl für Unternehmen als auch Personen zulässig
pers_id int nullable -> Grunderfassung_Personen(pers_id) | sowohl Pauschal- als auch Individualberatung bei Personenbindung möglich
titel text
beratungs_typ berat_typ(pauschal, individual)
@@ -89,7 +91,6 @@ Beratung_Vorgang | Beratung kann an Unternehmen allein (pauschal), Person allein
geloescht "timestamp with time zone" nullable
# temporaer bool | Gibt an, ob der Vorgang losgelöst von der Grunderfassung gestartet wurde (Daten müssen nachträglich zugeordnet werden); theoretisch auch erfüllt, wenn `un_id` und `pers_id` beide NULL sind
Beratung_Einzelberatung | Änderungen müssen über einen DB-Trigger an Elterntabelle zurückgeschrieben werden
beratung_id int pk {autoIncrement}
vorgang_id int -> Beratung_Vorgang(vorgang_id) | Jede Beratung muss zu einem Beratungsvorgang gehören.