Datenmodell-Schulungskonsole

Interaktive Schulungsoberfläche für relationale Normalisierung in SQL und flexible Dokumentmodelle in MongoDB.

SQL + MongoDB
Dokumente & Events
MongoDB-Track · Schritt 3 / 5

Kundeninteraktionen

Dieser Lernpfad zeigt, welche Daten nach der SQL-Normalisierung bewusst in flexible Dokumente ausgelagert werden: variierende Produktattribute, Interaktionsprofile und Event-Historien.

Dokumentenfluss aktiv
Schritt 3: Kundeninteraktionen — Diese Collection bildet ein laufendes Profil pro Kunde ab: Suchanfragen, Wunschlisten, Geräte, Reaktionen auf Kampagnen und Service-Marker. Genau solche Daten sind in SQL oft nur mit vielen Hilfstabellen abbildbar.
150
Kundenprofile
70
Newsletter aktiv
45
VIP-Markierung
3,0
Ø Wunschliste
Desktop
häufigster Gerätetyp

Profile mit hoher Dynamik

K148

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983ec2"
    },
    "kundennummer": "K148",
    "profil": {
        "sprache": "de",
        "newsletter": true,
        "bevorzugte_kategorien": [
            "elektronik",
            "MÖBEL",
            "MUSIK"
        ],
        "kontaktkanaele": [
            "Chat",
            "Telefon"
        ]
    },
    "letzte_suchen": [
        "bio müsli",
        "gesichtscreme empfindliche haut",
        "kinderspielzeug ab 6",
        "yogamatte rutschfest"
    ],
    "zuletzt_angesehen": [
        "ART-1847",
        "P-1684",
        "PRD-1802",
        "PRD-1171",
        "ART-2360",
        "P-2506",
        "PRD-2372",
        "P-1181"
    ],
    "wunschliste": [
        "P-1478"
    ],
    "geraete": [
        {
            "typ": "Mobilgerät",
            "browser": "Chrome",
            "betriebssystem": "Android"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Tech-Deals",
            "status": "ignoriert",
            "zeitpunkt": "2026-01-20T19:33:00Z"
        },
        {
            "kampagne": "Sommeraktion",
            "status": "ignoriert",
            "zeitpunkt": "2026-03-16T15:05:00Z"
        }
    ],
    "support_marker": {
        "vip": false,
        "retoure_haeufigkeit": "mittel",
        "risiko_score": 92
    }
}

K70

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983e79"
    },
    "kundennummer": "K70",
    "profil": {
        "sprache": "de",
        "newsletter": false,
        "bevorzugte_kategorien": [
            "WERKZEUG",
            "möbel"
        ],
        "kontaktkanaele": [
            "Push"
        ]
    },
    "letzte_suchen": [
        "bio müsli",
        "ergonomischer bürostuhl"
    ],
    "zuletzt_angesehen": [
        "PRD-1954",
        "PRD-2349",
        "ART-1830",
        "ART-1506",
        "P-1401",
        "P-1903"
    ],
    "wunschliste": [
        "ART-2173"
    ],
    "geraete": [
        {
            "typ": "Desktop",
            "browser": "Firefox",
            "betriebssystem": "Linux"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Warenkorbabbrecher",
            "status": "abgemeldet",
            "zeitpunkt": "2026-03-06T17:22:00Z"
        },
        {
            "kampagne": "Newsletter März",
            "status": "ignoriert",
            "zeitpunkt": "2026-03-25T13:32:00Z"
        }
    ],
    "support_marker": {
        "vip": true,
        "retoure_haeufigkeit": "mittel",
        "risiko_score": 91
    }
}

K00118

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983ea6"
    },
    "kundennummer": "K00118",
    "profil": {
        "sprache": "de",
        "newsletter": true,
        "bevorzugte_kategorien": [
            "WERKZEUG",
            "auto & motorrad",
            "Bücher"
        ],
        "kontaktkanaele": [
            "Chat",
            "Telefon",
            "E-Mail"
        ]
    },
    "letzte_suchen": [
        "kinderspielzeug ab 6",
        "gesichtscreme empfindliche haut"
    ],
    "zuletzt_angesehen": [
        "1461",
        "1176",
        "PRD-1670",
        "P-1022",
        "P-1347"
    ],
    "wunschliste": [
        "PRD-2182",
        "1274"
    ],
    "geraete": [
        {
            "typ": "Tablet",
            "browser": "Safari",
            "betriebssystem": "iPadOS"
        },
        {
            "typ": "Mobilgerät",
            "browser": "Safari",
            "betriebssystem": "iOS"
        },
        {
            "typ": "Mobilgerät",
            "browser": "Chrome",
            "betriebssystem": "Android"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Sommeraktion",
            "status": "ignoriert",
            "zeitpunkt": "2026-01-23T08:11:00Z"
        },
        {
            "kampagne": "Wohnideen",
            "status": "ignoriert",
            "zeitpunkt": "2026-02-22T09:09:00Z"
        }
    ],
    "support_marker": {
        "vip": true,
        "retoure_haeufigkeit": "niedrig",
        "risiko_score": 90
    }
}

K6

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983e35"
    },
    "kundennummer": "K6",
    "profil": {
        "sprache": "en",
        "newsletter": true,
        "bevorzugte_kategorien": [
            "bücher",
            "Auto .",
            "Kosme."
        ],
        "kontaktkanaele": [
            "E-Mail"
        ]
    },
    "letzte_suchen": [
        "gesichtscreme empfindliche haut",
        "yogamatte rutschfest",
        "sporttasche damen",
        "gartenstuhl wetterfest"
    ],
    "zuletzt_angesehen": [
        "ART-1993",
        "1274",
        "PRD-1771",
        "2063"
    ],
    "wunschliste": [
        "ART-1587",
        "ART-2335",
        "2367",
        "PRD-1393"
    ],
    "geraete": [
        {
            "typ": "Desktop",
            "browser": "Firefox",
            "betriebssystem": "Linux"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Sommeraktion",
            "status": "geklickt",
            "zeitpunkt": "2026-03-11T08:11:00Z"
        },
        {
            "kampagne": "Sport-Special",
            "status": "ignoriert",
            "zeitpunkt": "2026-01-24T19:13:00Z"
        }
    ],
    "support_marker": {
        "vip": false,
        "retoure_haeufigkeit": "mittel",
        "risiko_score": 90
    }
}

Warum das didaktisch wichtig ist

Arrays sind fachlich echt

Wunschlisten, zuletzt angesehene Produkte und Kontaktkanäle sind Listen. In MongoDB bleiben sie Listen. In SQL müssten sie sofort in mehrere relationale Tabellen zerlegt werden.

MongoDB-Beispielabfrage

db.kundeninteraktionen.find( { "support_marker.vip": true, "support_marker.risiko_score": { $gte: 70 } }, { kundennummer: 1, support_marker: 1, wunschliste: 1, geraete: 1 } )