Modeling Customers
Summary
This chapter explores how to model customers in a graph database, covering individual customers, households, families, corporate entities, and organizations. We address challenges like license modeling, abuse detection, and tracking customer behavior across multiple touchpoints.
Concepts Covered
- Customer Definition
- Individual Customers
- Customer Locations
- Customer Addresses
- Household Modeling
- Family Relationships
- Corporate Customers
- Organization Customers
- License Modeling
- Abuse Detection
- IP Address Tracking
Learning Objectives
By the end of this chapter, students will be able to:
- Design a comprehensive customer node with appropriate properties
- Model relationships between individuals, households, and families
- Distinguish between individual and corporate customer models
- Implement license tracking and abuse detection patterns
- Connect customer entities to locations and addresses
Introduction: The Customer at the Center
If there's one thing every business agrees on, it's that customers matter. But here's the dirty little secret that keeps data architects up at night: nobody actually agrees on what a "customer" is. Is it the person who clicks "Buy Now"? The credit card that pays? The household that shares a Netflix account? The corporation that signs a million-dollar contract? The answer, frustratingly and wonderfully, is "yes to all of the above."
This chapter tackles one of the most common—and most deceptively complex—modeling challenges you'll face in your career. Customer data isn't just important; it's the gravitational center around which most business systems orbit. Get your customer model right, and queries about lifetime value, churn prediction, and personalization become elegant traversals. Get it wrong, and you'll spend your days writing SQL joins that make grown engineers weep.
The good news? Graph databases are spectacularly well-suited for customer modeling. Unlike relational systems that force you to pick one "customer" table and awkwardly shoehorn everyone into it, graphs let you model the rich, messy reality of how customers actually exist: as individuals who belong to households, who work at companies, who have multiple addresses, who share accounts with family members, and who occasionally try to game your licensing system.
Let's dive in and build customer models that actually reflect how the real world works.
Customer Definition: What Exactly Is a Customer?
Before we start creating nodes and edges, we need to answer a surprisingly philosophical question: what is a customer? This isn't academic navel-gazing—your answer shapes every modeling decision that follows.
A customer is any entity that has a business relationship with your organization. That relationship might involve:
- Purchasing products or services
- Subscribing to offerings
- Using licensed software
- Receiving communications
- Being tracked for potential future business
The challenge is that "entity" can mean wildly different things:
| Entity Type | Examples | Key Characteristics |
|---|---|---|
| Individual | Person buying shoes online | Single human, personal details |
| Household | Family sharing streaming service | Multiple people, shared billing |
| Corporate | Company purchasing software licenses | Legal entity, multiple contacts |
| Organization | Non-profit receiving donations | May have complex hierarchy |
Most businesses need to model all of these, often with the same person appearing in multiple contexts. Alice might be an individual customer who buys books, part of the Chen household that subscribes to music streaming, and the procurement manager at TechCorp who purchases enterprise software.
The Golden Rule of Customer Modeling
Model customers at the level of granularity that matches your business decisions. If you bill households, model households. If you personalize for individuals, model individuals. If you do both, model both—and connect them with edges.
Diagram: Customer Entity Types
Customer Entity Hierarchy
Type: diagram Purpose: Show the different types of entities that can be "customers" and their relationships Bloom Taxonomy: Understand (L2) Learning Objective: Students will identify and distinguish between different customer entity types Components to show: - Four main entity types as distinct shapes: - Individual (circle, blue) - Household (rounded rectangle, green) - Corporate (rectangle, orange) - Organization (hexagon, purple) - Connecting lines showing possible relationships: - Individual MEMBER_OF Household - Individual EMPLOYED_BY Corporate - Individual AFFILIATED_WITH Organization - Corporate SUBSIDIARY_OF Corporate - Organization PARTNERED_WITH Organization Visual hierarchy: - Individual at center (most granular) - Household, Corporate, Organization surrounding (aggregations) - Arrows indicating direction of relationship Labels for each entity type showing: - Typical properties - Business context Style: Modern infographic with clear iconography Color scheme: - Individual: Blue (#4A90D9) - Household: Green (#7CB342) - Corporate: Orange (#FF9800) - Organization: Purple (#9C27B0) Implementation: SVG or HTML/CSS diagramIndividual Customers: The Person Behind the Purchase
The most fundamental customer type is the individual customer—a single human being who interacts with your business. This seems straightforward until you realize how much complexity hides behind "a person."
An individual customer node typically includes:
Identity Properties:
customer_id: Your internal unique identifieremail: Primary contact (often used as login)phone: Contact number(s)name: Full name or name components (first, last, middle)
Demographic Properties:
date_of_birth: For age-related personalization or compliancegender: If relevant and ethically collectedpreferred_language: For communications
Business Properties:
customer_since: When the relationship beganstatus: Active, inactive, churned, etc.tier: Loyalty program levellifetime_value: Calculated total spending
Consent Properties:
marketing_consent: Can you send promotions?data_sharing_consent: Can you share with partners?consent_date: When consent was given
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Notice the dual labels: :Customer (the general category) and :Individual (the specific type). This pattern lets you query all customers regardless of type, or filter to just individuals when needed.
Diagram: Individual Customer Node
Individual Customer Node Structure
Type: diagram Purpose: Visualize the anatomy of an individual customer node with property groups Bloom Taxonomy: Remember (L1) Learning Objective: Students will recall the standard property groups for individual customer nodes Components: - Central node labeled "Customer:Individual" - Four property group panels radiating out: 1. Identity (top): customer_id, email, phone, name fields 2. Demographics (right): date_of_birth, gender, language 3. Business (bottom): customer_since, status, tier, LTV 4. Consent (left): marketing, data_sharing, consent_date - Color coding for property groups: - Identity: Blue - Demographics: Green - Business: Orange - Consent: Purple - Icons for each group (person, calendar, briefcase, shield) Style: Clean node diagram with grouped properties Implementation: SVG or p5.js static diagramHandling Multiple Identities
Real customers are messy. The same person might:
- Have three email addresses (personal, work, spam-catcher)
- Use different names (legal name vs. nickname)
- Have multiple phone numbers
- Appear in your system from different acquisition channels
You have two modeling choices:
Option 1: Properties as Lists
1 2 3 4 | |
Option 2: Separate Identity Nodes
1 2 | |
Option 2 is more verbose but enables richer querying: "Find all customers who have both a work and personal email" becomes a simple pattern match rather than list manipulation.
Customer Locations: Where Customers Exist in Space
Customers don't float in a void—they exist in physical and virtual spaces. Customer locations capture the geographic dimension of customer data, enabling everything from shipping logistics to market analysis.
Location modeling involves several decisions:
What geographic granularity do you need?
- Country only (for compliance regions)
- State/Province (for tax calculations)
- City (for market analysis)
- Precise coordinates (for delivery optimization)
How do locations relate to customers?
- Billing location (where invoices go)
- Shipping location (where products go)
- Activity location (where they browse/purchase)
- Residence location (where they live)
A flexible approach uses Location nodes that can represent different granularities:
1 2 3 4 5 6 7 8 9 10 | |
Connecting customers to locations:
1 2 | |
| Relationship Type | Meaning | Typical Properties |
|---|---|---|
| RESIDES_IN | Customer's home location | since, is_primary |
| WORKS_IN | Employment location | company, role |
| PURCHASES_FROM | Where transactions occur | frequency, last_purchase |
| SHIPS_TO | Delivery destination | is_default, delivery_instructions |
Diagram: Location Hierarchy
Geographic Location Hierarchy
Type: graph-model Purpose: Show how location nodes connect hierarchically and to customers Bloom Taxonomy: Understand (L2) Learning Objective: Students will understand how to model geographic hierarchies in a graph Node types: 1. Country (large hexagon, dark blue) - United States 2. State (medium pentagon, medium blue) - Washington, California 3. City (small square, light blue) - Seattle, San Francisco 4. Customer (circle, green) - Alice, Bob Edge types: 1. LOCATED_IN (dashed arrow, gray) - City -> State -> Country 2. RESIDES_IN (solid arrow, green) - Customer -> City 3. PURCHASES_FROM (dotted arrow, orange) - Customer -> City Sample structure: - USA (Country) ├── Washington (State) │ └── Seattle (City) │ └── Alice RESIDES_IN └── California (State) └── San Francisco (City) └── Bob RESIDES_IN Layout: Hierarchical tree with customers as leaves Interactive features: - Click location to see all customers - Hover for population/customer count Implementation: vis-network with hierarchical layout Canvas size: 700x500pxCustomer Addresses: The Street-Level View
While locations capture geographic areas, addresses provide the precise street-level detail needed for physical mail, deliveries, and legal documentation. Addresses deserve their own nodes because:
- Multiple customers may share an address (household members)
- One customer may have multiple addresses (home, work, vacation)
- Address validation and standardization is a distinct concern
- Addresses change independently of customers
A well-designed address node includes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Connecting addresses to customers with context:
1 2 3 | |
Address Validation Matters
Invalid addresses cost real money—failed deliveries, returned mail, wasted marketing spend. Always track validation status and consider integrating with address validation services like USPS, Google, or specialized providers.
Shared Addresses
When multiple customers share an address, the graph naturally represents this:
1 2 3 | |
This pattern immediately enables queries like "Who else lives at this address?" and "Find all customers at addresses with 3+ residents"—queries that would require self-joins and grouping in a relational system.
Household Modeling: Customers as Collectives
Many business relationships exist not with individuals but with households—groups of people who share living arrangements, subscriptions, or purchasing decisions. Streaming services, utilities, insurance companies, and grocery delivery all think in terms of households.
A household node aggregates individuals:
1 2 3 4 5 6 7 8 9 | |
Connecting individuals to households:
1 2 3 4 | |
The role property on the MEMBER_OF edge is crucial for understanding household dynamics:
| Role | Description | Business Implications |
|---|---|---|
| account_owner | Primary responsible party | Receives bills, makes decisions |
| member | Regular household member | Can use services |
| authorized_user | Non-resident with access | May have spending limits |
| dependent | Child or elder dependent | Age restrictions may apply |
Diagram: Household Structure MicroSim
Interactive Household Builder
Type: microsim Purpose: Let students experiment with building household structures and exploring relationships Bloom Taxonomy: Apply (L3) Learning Objective: Students will construct household models with appropriate membership relationships Canvas layout: - Left panel (40%): Individual customer palette - Center (40%): Household visualization - Right panel (20%): Relationship properties Visual elements: - Draggable individual nodes (circles with names) - Household container (large rounded rectangle) - Connection lines showing membership - Role badges on connections Pre-populated individuals: - Alice (adult) - Bob (adult) - Charlie (teen) - Diana (child) - Grandma Rose (senior) Interactive controls: - Drag individuals into household - Click connection to set role (dropdown) - Button: "Add New Individual" - Button: "Create Second Household" - Display: Household statistics (size, combined LTV) Behavior: - Dropping individual into household creates MEMBER_OF edge - Role defaults to "member", click to change - Same individual can belong to multiple households - Household stats update in real-time Default scenario: - Empty household ready for building - All individuals available in palette Implementation: p5.js with drag-and-drop functionalityHousehold vs. Address
A common question: "Why have both Household and Address? Isn't a household just 'people at an address'?"
Not quite! Consider these scenarios:
- College student: Lives at dorm address but belongs to parents' household for billing
- Divorced parents: Two addresses, one household for shared custody
- Vacation home: Same household, multiple addresses
- Multi-generational: One address, potentially multiple distinct households
Model both, and connect them:
1 2 | |
Family Relationships: Blood, Law, and Choice
Within and across households, family relationships add another dimension to customer modeling. Understanding that Alice and Bob are married, that Charlie is their child, and that Rose is Alice's mother enables powerful personalization and analysis.
Family relationships are modeled as edges between individual customers:
1 2 3 4 | |
Common family relationship types:
| Relationship | Direction | Properties |
|---|---|---|
| MARRIED_TO | Bidirectional | since, anniversary |
| PARENT_OF | Parent → Child | biological, adopted |
| CHILD_OF | Child → Parent | |
| SIBLING_OF | Bidirectional | full, half, step |
| GRANDPARENT_OF | Grandparent → Grandchild | |
| GUARDIAN_OF | Guardian → Ward | legal_since |
Relationship Direction Convention
While family relationships are often conceptually bidirectional, pick a consistent direction for edges. "Alice PARENT_OF Charlie" is cleaner than maintaining both PARENT_OF and CHILD_OF edges. Queries can traverse in either direction anyway.
Family Relationships Enable Powerful Queries
Once you have family relationships, you can answer questions that would be nightmarish in relational systems:
"Find all grandchildren of customer X":
1 2 3 4 | |
"Find customers whose spouse also shops with us":
1 2 3 | |
"Calculate combined family lifetime value":
1 2 3 | |
Diagram: Family Relationship Graph
Extended Family Network Visualization
Type: graph-model Purpose: Show how family relationships create rich networks across multiple households Bloom Taxonomy: Analyze (L4) Learning Objective: Students will analyze complex family structures and their representation in graph form Node types: 1. Individual customers (circles) - Different colors for different generations - Blue: Grandparents - Green: Parents - Orange: Children Edge types: 1. MARRIED_TO (solid red line, no arrow) 2. PARENT_OF (solid blue arrow) 3. SIBLING_OF (dashed green line) 4. MEMBER_OF (dotted gray arrow to household) Sample family structure: - Grandparents: Rose (widowed) - Parents: Alice + Bob (married), David + Eva (married) - Alice is Rose's daughter, David is Rose's son - Children: Charlie (Alice+Bob's), Frank (David+Eva's) - Charlie and Frank are cousins Households shown: - Chen Household (Alice, Bob, Charlie) - Smith Household (David, Eva, Frank) - Rose's Household (Rose alone) Layout: Family tree style with generations in rows Interactive features: - Click person to highlight all their relationships - Hover to see relationship path to selected person - Toggle to show/hide household memberships Implementation: vis-network with custom layout Canvas size: 900x600pxCorporate Customers: When Your Customer Is a Business
Not all customers are people. Corporate customers are legal business entities—companies, LLCs, partnerships—that purchase from your organization. B2B (business-to-business) scenarios often involve corporate customers, and they have fundamentally different modeling needs.
A corporate customer node includes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Corporate customers connect to individual contacts:
1 2 3 | |
| Contact Role | Description | Typical Interactions |
|---|---|---|
| primary | Main point of contact | Orders, renewals, issues |
| billing | Handles payments | Invoices, payment terms |
| technical | Technical decisions | Implementation, support |
| executive | Strategic sponsor | Escalations, expansions |
| legal | Contract matters | Agreements, compliance |
Corporate Hierarchies
Large corporations have complex structures: parent companies, subsidiaries, divisions, departments. Graphs handle this naturally:
1 2 3 4 5 | |
This hierarchy enables queries like:
- "What's our total revenue from MegaCorp and all its subsidiaries?"
- "If MegaCorp's primary contact changes, which subsidiaries need notification?"
- "Which divisions of TechCorp haven't renewed their licenses?"
Diagram: Corporate Structure
Corporate Hierarchy with Contacts
Type: graph-model Purpose: Visualize corporate ownership structure and contact relationships Bloom Taxonomy: Understand (L2) Learning Objective: Students will understand how to model corporate hierarchies and contact roles Node types: 1. Parent Corporation (large rectangle, dark blue) - MegaCorp Global 2. Subsidiary (medium rectangle, medium blue) - TechCorp Industries - DataCorp Analytics 3. Division (small rectangle, light blue) - TechCorp West - TechCorp East 4. Contact (circle, green) - Alice, Bob, Carol Edge types: 1. SUBSIDIARY_OF (solid arrow, black) - Properties: ownership_percent 2. DIVISION_OF (dashed arrow, gray) 3. CONTACT_FOR (solid arrow, green) - Properties: role Layout: Hierarchical with corporate structure at top, contacts at bottom Sample data: - MegaCorp owns TechCorp (100%) and DataCorp (51%) - TechCorp has West and East divisions - Alice is primary contact for TechCorp - Bob is technical contact for TechCorp West Interactive features: - Click corporation to see all contacts - Hover contact to see all corporations they represent - Expand/collapse hierarchy levels Implementation: vis-network with hierarchical layout Canvas size: 800x600pxOrganization Customers: Beyond Corporations
Organization customers encompass entities that don't fit the corporate mold: non-profits, government agencies, educational institutions, associations, and other structured groups. They share some characteristics with corporations but have distinct modeling needs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Organization types and their characteristics:
| Type | Examples | Key Considerations |
|---|---|---|
| Educational | Universities, schools | Academic calendars, student pricing |
| Government | Agencies, municipalities | Procurement rules, fiscal years |
| Non-profit | Charities, foundations | Tax exemptions, donation tracking |
| Association | Professional groups | Membership-based, chapters |
| Healthcare | Hospitals, clinics | HIPAA compliance, complex billing |
Organizations often have internal hierarchies:
1 2 3 | |
License Modeling: Who Can Use What
License modeling tracks the agreements that permit customers to use your products or services. In a world of SaaS subscriptions, per-seat pricing, and complex entitlements, license graphs are essential for compliance, billing, and access control.
A license node represents a specific grant of usage rights:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
License relationships connect customers, users, and products:
1 2 3 4 5 6 7 8 9 | |
Diagram: License Assignment Model
License Relationship Diagram
Type: graph-model Purpose: Show the relationships between corporate customers, licenses, and individual users Bloom Taxonomy: Understand (L2) Learning Objective: Students will understand the tripartite relationship between license holders, licenses, and users Node types: 1. Corporate Customer (rectangle, orange) - TechCorp 2. License (diamond, gold) - Enterprise License (50 seats) 3. Individual User (circle, blue) - Alice, Bob, Carol, David (4 users shown) 4. Product (hexagon, purple) - DataViz Pro Edge types: 1. HOLDS_LICENSE (solid arrow, orange) - Corporate -> License - Properties: contract_id, signed_date 2. ASSIGNED_TO (solid arrow, blue) - Individual -> License - Properties: assigned_date 3. GRANTS_ACCESS_TO (dashed arrow, purple) - License -> Product Visual indicators: - License node shows "43/50 seats used" - Progress bar within license node - Assigned users grouped visually Layout: Hierarchical with license in center Implementation: vis-network with custom shapes Canvas size: 700x500pxLicense Compliance Patterns
Graphs excel at answering license compliance questions:
"Are we over our seat count?"
1 2 3 4 5 | |
"Who hasn't used their assigned license in 90 days?"
1 2 3 | |
"What products can this user access?"
1 2 3 4 5 | |
Abuse Detection: When Customers Behave Badly
Not all customer behavior is legitimate. Abuse detection uses graph patterns to identify customers engaging in fraud, policy violations, or system gaming. Graphs are particularly powerful here because abuse often involves relationships that relational queries struggle to express.
Common abuse patterns to detect:
Account Sharing Abuse:
1 2 3 4 5 6 | |
Trial Abuse (Multiple Accounts):
1 2 3 4 5 6 | |
Fake Household Abuse:
1 2 3 4 5 6 | |
Diagram: Abuse Detection Patterns
Abuse Pattern Visualization
Type: diagram Purpose: Illustrate common abuse patterns and how they appear in graph structure Bloom Taxonomy: Analyze (L4) Learning Objective: Students will analyze graph patterns to identify potential customer abuse Three pattern panels: Panel 1: Account Sharing - One user node connected to many IP address nodes (suspicious) - Compare to normal: one user, 2-3 IPs - Red highlighting on suspicious pattern Panel 2: Trial Abuse - Multiple customer nodes sharing email/device nodes - Star pattern with shared identifier at center - Each customer has "trial" badge Panel 3: Fake Household - Household node with member connections - Each member connected to different address - No shared addresses between members - Contrast with legitimate household (shared address) Color scheme: - Normal patterns: Green/blue - Suspicious patterns: Red/orange - Shared identifiers: Yellow highlight Style: Side-by-side comparison of normal vs. suspicious Implementation: SVG or HTML/CSS diagramBuilding an Abuse Score
Rather than binary "abuser/not abuser" classifications, consider computing an abuse risk score based on multiple signals:
1 2 3 4 5 6 7 | |
Store this on the customer node and update it periodically:
1 2 3 | |
IP Address Tracking: The Digital Fingerprint
IP address tracking connects customers to their digital footprint, enabling location inference, device tracking, and security analysis. IP addresses are first-class entities in a customer graph.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Connecting customers to IP addresses:
1 2 3 4 5 6 | |
IP tracking enables valuable queries:
"Find all customers who've accessed from this IP":
1 2 | |
"Has this customer ever used a VPN?":
1 2 3 | |
"Find customers accessing from multiple countries in one day":
1 2 3 4 5 | |
Diagram: IP Tracking MicroSim
Customer IP Activity Visualizer
Type: microsim Purpose: Visualize customer access patterns across IP addresses and detect anomalies Bloom Taxonomy: Evaluate (L5) Learning Objective: Students will evaluate IP access patterns to identify normal vs. suspicious behavior Canvas layout: - Left panel (30%): Customer selector and info - Center (50%): World map with IP locations - Right panel (20%): Activity timeline and risk indicators Visual elements: - World map with plotted IP locations - Lines connecting customer to IP locations - Color-coded risk indicators (green=safe, yellow=moderate, red=high) - Timeline of access events below map Interactive controls: - Dropdown: Select customer - Date range slider - Checkboxes: Filter by VPN, Proxy, Datacenter - Toggle: Show travel path animation Sample data: - Customer Alice: Seattle (home), Portland (travel), VPN (flagged) - Customer Bob: NYC only (clean pattern) - Customer Charlie: 10 countries in 1 day (highly suspicious) Risk calculation displayed: - IP diversity score - Geographic velocity check - VPN/Proxy usage percentage - Overall risk assessment Behavior: - Selecting customer shows their IP footprint - Hovering IP shows access details - Risk score updates based on filters - Anomalies highlighted with pulsing effect Implementation: p5.js with map visualization (Leaflet or similar)IP Address as Shared Entity
Multiple customers may share IP addresses legitimately (same office, same coffee shop) or suspiciously (credential sharing). The graph makes this visible:
1 2 3 4 5 | |
This query immediately reveals potential account sharing or legitimate shared environments—context that would require multiple subqueries and joins in a relational system.
Bringing It All Together: The Complete Customer Graph
Let's see how all these pieces combine into a comprehensive customer model:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
This connected structure enables queries that span all aspects of customer data:
"What's the total value of Alice's household plus her employer?"
1 2 3 4 5 6 7 8 9 10 | |
Summary
This chapter explored the rich complexity of customer modeling in graph databases. We learned that "customer" is not a single concept but a family of related entity types:
- Individual customers represent single humans with identity, demographic, and consent properties
- Customer locations and addresses place customers in geographic context at different granularities
- Households aggregate individuals who share billing, subscriptions, or living arrangements
- Family relationships capture the blood, legal, and chosen bonds between individuals
- Corporate customers model business entities with complex hierarchies and multiple contacts
- Organization customers extend corporate concepts to non-profits, government, and educational institutions
- License modeling tracks usage rights and assignments across the customer graph
- Abuse detection leverages graph patterns to identify fraud, sharing violations, and policy abuse
- IP address tracking connects customers to their digital footprint for security and personalization
The power of graph modeling for customers lies in representing these entities and their connections naturally. Where relational databases would require dozens of tables, junction tables, and complex joins, graphs model the messy reality of customer relationships directly.
As you continue through this course, you'll see these customer models connect to products, transactions, time, and space—building toward the comprehensive data models that power modern businesses.
Quick Knowledge Check - Design a Customer Model
You're building a graph for a gym/fitness club. Design nodes and edges for: - Individual members - Family memberships - Corporate wellness program memberships - Member check-ins at different gym locations
Answer:
Nodes:
- :Customer:Individual - Individual gym members
- :Customer:Household:FamilyMembership - Family membership package
- :Customer:Corporate - Companies with wellness programs
- :Location:Gym - Physical gym locations
- :CheckIn - Individual check-in events (optional, could be edge)
Edges:
- (individual)-[:MEMBER_OF {role: "primary"|"family_member"}]->(familyMembership)
- (individual)-[:ENROLLED_VIA]->(corporate) - Corporate wellness enrollment
- (individual)-[:CHECKED_IN_AT {timestamp, duration}]->(location)
- (familyMembership)-[:HAS_HOME_GYM]->(location)
- (corporate)-[:PARTNER_AGREEMENT {discount_rate}]->(gym_chain)
Key insight: An individual can be both in a family membership AND enrolled through a corporate wellness program—the graph handles this naturally!
References
- Master Data Management and Data Governance by Alex Berson and Larry Dubov - Comprehensive coverage of customer data integration
- Customer Data Platforms by Martin Kihn and Christopher O'Hara - Modern approaches to customer data unification
- Graph-Powered Machine Learning by Alessandro Negro - Using graphs for customer analytics
- GDPR and Customer Data - European Union regulations affecting customer data modeling