1.8 KiB
1.8 KiB
ADR 0013 — Kunden-/Adress-/Kontaktmodell
Status
Accepted
Kurz erklärt
Ein Kunde ist nicht einfach nur ein Datensatz mit Name, Adresse und E-Mail.
Es gibt:
- Privatpersonen
- Firmen
- Ansprechpartner
- Rechnungsadressen
- technische Kontakte
- abweichende Postadressen
Kontext
Das Architekturreview hat kritisiert, dass das Objekt „Kunde“ zu monolithisch gedacht war.
Ein zu einfaches Kundenmodell erschwert später:
- DSGVO-Auskunft
- DSGVO-Löschung
- B2B/B2C-Unterscheidung
- mehrere Ansprechpartner
- getrennte Rechnungsadressen
- spätere Mandantenfähigkeit
Entscheidung
Das fachliche Kundenmodell wird aufgeteilt in:
- Customer
- Party
- Address
- ContactPoint
- CustomerContact
Begriffe
Customer
Die Kundenbeziehung im System.
Party
Eine Person oder Organisation.
Address
Eine Adresse mit Verwendungszweck, z. B.:
- Rechnungsadresse
- Postadresse
- Firmensitz
ContactPoint
Kontaktmöglichkeit, z. B.:
- Telefon
- Mobil
- Website
CustomerContact
Verknüpfung zwischen Kunde und Ansprechpartner.
Beispiel
Customer: Müller Webservice
Party: Müller Webservice GmbH
Address: Rechnungsadresse
ContactPoint: buchhaltung@...
ContactPoint: technik@...
CustomerContact: Max Müller als technischer Ansprechpartner
B2B/B2C
Das Modell muss unterscheiden können:
- B2B
- B2C
- öffentliche Einrichtung
- Verein/Organisation
Begründung
Das ist notwendig für:
- korrekte Rechnungsdaten
- DSGVO
- Supportprozesse
- Vertragsverwaltung
- spätere Erweiterbarkeit
Konsequenzen
Positiv
- saubereres Datenmodell
- bessere DSGVO-Fähigkeit
- bessere B2B/B2C-Unterstützung
- bessere Kundenrealität
Negativ
- mehr Tabellen
- mehr UI-Komplexität
- Importlogik muss sauber mappen
Verwandte ADRs
- ADR 0021 — DSGVO-Löschung und Retention
- ADR 0015 — Tax- und VAT-Strategie