Files
Hosting-Backoffice/decisions/0013-customer-domain-model.md
T
2026-05-18 04:37:23 +00:00

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.:

  • E-Mail
  • 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